JQuery

1个成员

jquery attr和removeAttr获取和设置元素属性

发表于 2017-02-12 4069 次查看
在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>

发表回复
你还没有登录,请先登录注册