attr是jQuery的属性。
1 - - attr(name)
取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined
例如:
html:
<div class="pz1z" id="zzzz" >
<span>aaaa</span>
</div>
js:
$(document).ready(function(){
var aa= $("div").attr("class");
alert(aa)
});
打印的结果为div 便签class属性的值 pz1z
注意:这种只会获取第一个匹配的元素 如果两个div 只能获取到第一个的属性值。可以通过选择器加以过滤(pzz)
2 - - attr(properties) 返回值:jQuery
properties Map
将一个“名/值”形式的对象设置为 《所有匹配元素》 的属性。
这是一种在所有匹配元素中批量设置很多属性的最佳方式。 注意,如果你要设置对象的class属性,你必须使用‘className‘ 作为属性名。或者你可以直接使用.addClass( class ) 和 .removeClass( class ).
html:
<img id="nihao" src="sssss"/>
js:
$("img").attr({src:"woqunimei",id:"buhao"});
注意:会改变所有匹配元素的属性 如果过滤条件为div 那么所有的div元素的属性都将会改变 。同时它的()里有一对大括号(pzz)、
3 - - attr(key, value) 返回值:jQuery
为所有匹配的元素设置一个属性的值 key value 均为string类型,也就是都是"",""的格式
html:
<img id="nihao" src="sssss"/>
js:
$("img#img1").attr("src","woqunimei");
var aa= $("img#img1").attr("src");
alert(aa)
result:
“woqunimei”(attr(name)只会找到第一个匹配的元素,所有要加过滤的条件)
注意:这种只能单一的改变元素的一个属性值,如果要改变多个属性,可以参考attr(properties)函数。同时,它也会改变所有匹配到的元素属性值(pzz)
4 - -attr(key, function(index, attr)) 返回值 jQuery
key(class) String function(index, attr) Function
为所有匹配的元素改变一个属性的值,只不过第二个参数不同于 attr(key, value),不再是一个value string类型的值,而是一个函数
示例
HTML 代码:
<input type="text"/>
//<input type="text"/>
jQuery 代码:
$("input[type=‘text‘]").attr("value",function(){
return "我是一个菜鸟"
});
//$("img").attr("title", function() { return this.src });
结果:
<img src="test.jpg" value="我是一个菜鸟" /> (页面加载后,文本框中会出现 “我是一个菜鸟”)
注意:这样会改变所有匹配到的元素属性值,如果有两个文本输入框,都会受到影响 (pzz)
5 - - removeAttr(name) 返回值:jQuery
从每一个匹配的元素中删除一个属性,
描述:
将文档中图像的src属性删除
HTML 代码:
<input type="text"/ value="我是一个菜鸟">
<input type="text"/ value="我不是一个菜鸟">
jQuery 代码:
$("input").removeAttr("value");;
结果:
两个文本框中什么字读没有了;
注意:删除的是所有的匹配元素的一个属性值,attr首字母大写。jQuery 1.7以上版本支持一次删除多个属性的值$("input").removeAttr("class value");
属性之间用空格符隔开