attribute attr prop 区别

原创 2016年06月01日 09:48:50

attr 与 prop的区别是什么?

这篇微博解释的很清楚

那么,什么时候使用attr(),什么时候使用prop()?

*添加属性名称该属性就会生效应该使用prop();
*是有true,false两个属性使用prop();
*其他则使用attr();
项目中jquery升级的时候大家要注意这点!
以下是官方建议attr(),prop()的使用:
使用说明表格看这里

js中attribute与jquery中attr区别是什么

js setAttribute与jquery中attr工作是完全一样的,只是jquery中简写了并且工能更强大了,下面我来分别介绍一下他们的用法。
* setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。
* 1、样式问题
setAttribute(“class”, value)中class是指改变”class”这个属性,所以要带引号。
vName代表对样式赋值。
例如:
代码如下 复制代码

var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);

输出时:,即,input控件具有bordercss样式属性
注意:class属性在W3C DOM中扮演着很重要的角色,但由于浏览器差异性仍然存在。
使用setAttribute(“class”, vName)语句动态设置Element的class属性在firefox中是行的通的,但在IE中却不行。因为使用IE内核的浏览器不认识”class”,要改用”className”;
同样,firefox 也不认识”className”。所以常用的方法是二者兼备:
代码如下 复制代码

element.setAttribute("class", value); //for firefox
element.setAttribute("className", value); //for IE

2、方法属性等问题
例如:
代码如下 复制代码
var bar = document.getElementById(“testbt”);
bar.setAttribute(“onclick”, “javascript:alert(‘This is a test!’);”);
这里利用setAttribute指定e的onclick属性,简单,很好理解。
但是IE不支持,IE并不是不支持setAttribute这个函数,而是不支持用setAttribute设置某些属性,例如对象属性、集合属性、事件属性,也就是说用setAttribute设置style和onclick这些属性在IE中是行不通的。
为达到兼容各种浏览器的效果,可以用点符号法来设置Element的对象属性、集合属性和事件属性。
代码如下 复制代码

document.getElementById("testbt").className = "bordercss";
document.getElementById("testbt").style.cssText = "color: #00f;";
document.getElementById("testbt").style.color = "#00f";
document.getElementById("testbt").onclick= function () { alert("This is a test!"); }

在不同浏览器上的不同表现
一、setAttribute的问题
elementNode为…
希望对其增加一个单击行的事件处理函数,
写法1:
table1row1.setAttribute(“onclick”, “selectrow1(this)”);
IE8, Firefox, google chrome 能正确触发click 事件
IE6,IE7则不能触发click 事件。
写法2:
table2row1.onclick = function() { selectrow2(this) };
所有测试浏览器均能触发click 事件
故为了兼容在不同的IE中,我们可以统一使用如下语句。
table2row1.onclick = function() { selectrow2(this) };
jquery 定义和用法
attr() 方法设置或返回被选元素的属性值。
根据该方法不同的参数,其工作方式也有所差异。
返回属性值
返回被选元素的属性值。
语法
$(selector).attr(attribute)参数 描述

设置多个属性/值对
为被选元素设置一个以上的属性和值。
语法
$(selector).attr({attribute:value, attribute:value …})参数 描述
attribute:value 规定一个或多个属性/值对。
attribute 规定要获取其值的属性。

用法一: ().attr()((选择器)部分 )的指定属性的值. 看例子:
有这样一段html:

代码如下 复制代码

<img src=/lpic/s3791510.jpgalt=“变形金刚海报” width=“500″ height=“300″ />

那么你要获取到图片的地址该怎么办呢? 这样: (img).attr(src),alert.?:(”img”).attr(”alt”) .够简单吧. 它不但可以取到html本身有的属性, 而且也能取到你自己定义的属性, 比如上例中的 funny属性, 自己试试能不能获取到它的值. 注意: 如果你要获取的属性是不存在的, 那么jquery就会返回一个 undefined .
用法二: $(选择器).attr(属性名, 属性值) 它的作用是为所有匹配的元素设置一个属性值。
假如页面中有一堆这样的html:
代码如下 复制代码

我们写一句这样的jquery代码:

$(”img”).attr(”src”,”http://t.douban.com/lpic/s3791510.jpg”)

这样上面一堆无意义的img标签就变成了:
代码如下 复制代码

<img src=/s3791510.jpg” /><img src=/s3791510.jpg” />

很容易理解吧. 假如我们想给图片设置高度,那么只要 (img).attr(height,300'').:(”img”).attr(”width”,”500″) . 如此看来是没有什么问题, 但是当要设置多个属性时, 一个一个的这样写真是太麻烦了, 那么我们来看第三个用法.
用法三: $(选择器).attr(Map) 它的意思就是给指定元素设置多个属性值, 我们重点看一下 Map 是什么意思. 它其实是这样一种序列:
{属性名一: “属性值一” , 属性名二: “属性值二” , … … }
那么我要实现用法二中的例子只要这样写:
代码如下 复制代码

$(“img”).attr({src:“/s3791510.jpg” , height: “300″ , width : “500})

以上我们学会了获取属性值, 设置属性值, 那么怎么删除属性呢?
jquery中删除属性的关键词是: removeAttr 注意A是大写的. 看看怎么用的:
同样是用法一中的html代码, 我想删掉图片的高度属性, 那么就这样:
$(“img”). removeAttr(“height”);
嗯,就这么简单. attr 其实就是原生js中 getAttribute 的简化实现, 而removeAttr 就是 removeAttribute 的简写了
例子

代码如下 复制代码

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 
//$('div.chapter a').attr({'rel':'external'}); 
$('div.chapter a').each(function(index){ 
var $linkthis=$(this) 
$linkthis.attr({ 
'rel':'external', 
'id':'wikilink-'+index, 
'title':'你好,现在在试验'+$linkthis.text() 
}); 
}); 
$('#wikilink-1').css('fontSize',33); 
}); 
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Property(prop)和Attribute(attr)的区别

Attribute和Property都被翻译成“属性”

.attr(),.prop()和.data()的区别

Jquery 中 .attr()  .prop() .data()的区别 .attr()和.prop()的区别        .attr()和.prop()都是用来设置或者获取指定函数的,参数和用...

jQuery的attr与prop使用区别

转自:http://www.jb51.net/article/41997.htm jQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HT...

jquery中.prop()和.attr()的区别 什么叫布尔型属性 property vs attributes , boolean attributes...

固有属性 布尔型属性 jquery 1.6之后出了个新方法 .prop() , .prop() 与 .attr() 到底各自对应什么呢? 什使用.prop()来获取property,使用.attr()...

jQuery 中 attr 和 prop 的区别分析

jQuery 中 attr 和 prop 的区别分析 转载原文 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关...

prop 与attr的区别

.prop() 1、.prop( propertyName ) 获取匹配集合中第一个元素的Property的值 2、 .prop( propertyName, va...

使用jQuery设置radio值应该注意的问题:attr和prop的区别

1、从1.5.2升级到1.6.1 通过介绍新方法.prop()以及.attr()方法的改变,jQuery1.6.1引起了一场关于attributes和properties之间有何区别和联系的激烈...

jquery中attr和prop的区别

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简...

jquey中的attr()和prop()区别

先提出问题:对于 checked 这类值是 true/false 的属性,用 jQuery 的 attr 或 prop 方法进行 读取或设置值是有区别的。 在看 jQuery 文档前,我们先看看 a...

jquery中attr和prop的区别

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)