在jquery中attr和removeAttr的功能是用来获取和设置元素属性了,在jquery中它们起到超强的作用,如果我想增加元素增加css或获取class名称,等等操作都可以利用attr和removeAttr来操作。
attr()方法
一、attr(name):取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined 。其中name为string.下面我用一个img元素演示一下这种用法:
代码如下 | 复制代码 |
//html文件中 <img src="a.gif" /> //我们可以用attr获得img元素的src属性,具体用法如下: $(function(){ var imgSrc = $("img").attr('src'); alert(imgSrc); //显示 a.gif }) |
二、attr(key,value):为所有匹配的元素设置一个属性值。key为string属性名,value为object属性值,用法演示:
代码如下 | 复制代码 |
//html文件中 <img /> //使用此方法设置img的src属性 $(function(){ $("img").attr('src', 'a.gif'); //文件中显示 <img src="a.gif" /> }) |
三、attr(properties):这是一种在所有匹配元素中批量设置很多属性的最佳方式。 注意,如果你要设置对象的class属性,你必须使用'className' 作为属性名。或者你可以直接使用.addClass( class ) 和 .removeClass( class ).
代码如下 | 复制代码 |
//文件中 <img /> $(function(){ $("img").attr({src:'a.gif', title:'this is a image', className: 'filter'}); }) // 显示为<img src="a.gif" title="this is a image" class="filter"> |
四、attr(key, fn):为所有匹配的元素设置一个计算的属性值。不提供值,而是提供一个函数,由这个函数计算的值作为属性值。
代码如下 | 复制代码 |
//文件中 <img src="a.gif" /> $(function(){ $("img").attr('title', function(){ return this.src }); //显示 <img src="a.gif" title="a.gif" /> }) |
以上介绍的是attr的一些用法,下面是removeAttr的用法 remove故明思意就是移除的意思,从每一个匹配的元素中删除一个属性。它的具体用法就是:
代码如下 | 复制代码 |
//文档中 <img src="a.gif" title="this is a image" ?> $(function(){ $("img").removeAttr('title'); //显示 <img src="a.gif" /> }) |
removeAttr()方法
jquery中删除属性的关键词是: removeAttr 注意A是大写的. 看看怎么用的:
同样是用法一中的html代码, 我想删掉li的title属性, 那么就这样:
代码如下 | 复制代码 |
<script> $("ul li:eq(1)").removeAttr ("title"); </script> |
就这么简单, attr 其实就是原生js中 getAttribute 的简化实现, 而removeAttr 就是 removeAttribute 的简写了。
那么是否有跟attr()相似的属性呢?
jquery中val()与之类似,
$(this).val();获取某个元素节点的value值,相当于$(this).attr("value");
$(this).val(value);设置某个元素节点的value值,相当于$(this).attr("value",value);
现在我们综合来看个实例
代码如下 | 复制代码 |
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> div{width:100px;margin:0px auto;border:1px solid red;} </style> <script src="../js/jquery-1.5.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#btnChange").click(function () { var $divs = $("div"); //----1.举例1 //$divs.eq(0).attr("MyAttr", "Ronaldo"); //eq返回指定下标的JQuery对象(注意:此时$divs中有两个div的dom元素) //$divs.eq(1).attr("MyAttr", "Ronaldo1"); //alert($divs.attr("MyAttr")); //读取MyAttr属性,注意,只会读取出第一个元素的该属性 //----2.举例2 使用JSon格式设置attr //$divs.eq(0).attr({ "MyAttr": "Ronaldo", "Age": "19" }); //$divs.eq(1).attr({ "MyAttr": "Rivaldo", "Age": "29" }); //alert("MyAttr:" + $divs.eq(1).attr("MyAttr") + ",Age:" + $divs.eq(1).attr("Age")); //----3.举例3 移除属性 $divs.eq(0).attr({ "MyAttr": "Ronaldo", "Age": "19" }); $divs.eq(1).attr({ "MyAttr": "Rivaldo", "Age": "29" }); alert("MyAttr:" + $divs.eq(1).attr("MyAttr") + ",Age:" + $divs.eq(1).attr("Age")); $divs.eq(1).removeAttr("Age"); alert("MyAttr:" + $divs.eq(1).attr("MyAttr") + ",Age:" + $divs.eq(1).attr("Age")); }); }); </script> </head> <body> <input id="btnChange" type="button" value="Click Me" /> <div id="div1">我是div1</div> <div id="div2">我是div2</div> </body> </html> |