jQuery attr()获取属性和设置属性的方法

前言:
在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,只需要用到attr()这个函数就可以了。attr是attribute(属性)的缩写。
语法:
1、attr(“属性名”); //获取属性的值(取得第一个匹配元素的属性。通过这个方法可以方便的从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回undefined)

2、attr(“属性名”,“属性值”); //设置属性的值(为所有匹配的元素设置一个属性值)

3、attr(“属性名”,“函数值”); //设置属性的函数值(为所有匹配的元素设置一个计算的属性值。不提供值,而是提供一个函数,由这个函数家孙的值作为属性值)

4、attr(properties); //给指定元素设置多个属性值,即:{属性名1:“属性值1”,属性值2:”属性值2”}(这是一种在所有匹配元素中批量设置很多属性的最佳方式。注意,如果你要设置的对象的class属性,你必须使用className作为属性名,或者你可以直接使用 class 或者 id )

注意:所有的标点符号都是英文符号,在给指定元素设置多个属性值的时候,注意双引号“”的使用!

举例如下:

<p title="你最喜欢的明星是?">你最喜欢的明星是?</p>
<ul>
   <li title="刘亦菲">刘亦菲</li>
   <li title="李易峰" value="123">李易峰</li>
   <li title="杨洋">杨洋</li>
</ul>

1、使用attr(属性名)获取属性的值。

 alert($("ul li").attr("title"));//结果刘亦菲
 alert($("ul li:eq(0)").attr("title"));//结果:刘亦菲
 alert($("ul li:eq(1)").attr("title"));//结果:李易峰(吾里峰峰)
 alert($("ul li").attr("value"));//结果:undefined
 alert($("ul li:eq(1)").attr("value"));//结果:123

2、attr(name,value) //设置属性的值

$("ul li:eq(2)").attr("title","胡歌");
alert($("ul li:eq(2)").attr("title"));//结果:胡歌

3、attr(name,fn) //设置属性的函数值

$("ul li:eq(1)").attr("title",function(){ return this.value});
alert($("ul li:eq(1)").attr("title"));//123

4.attr(properties) //将一个“名/值”形式的对象设置为所有匹配元素的属性

(1) 获取<ul>里第2个<li>设置title和value属性。

<script>
    $("ul li").attr({title:"不是李易峰",value:"不是123"});
    alert($("ul li:eq(1)").attr("title"));//不是李易峰
    alert($("ul li:eq(1)").attr("value"));//不是123 
    alert($("ul li:eq(2)").attr("title"));//不是李易峰
    alert($("ul li:eq(2)").attr("value"));//不是123
    alert($("ul li:eq(0)").attr("title"));//不是李易峰
    alert($("ul li:eq(0)").attr("value"));//不是123
</script>

(2)获取<ul>里第2个<li>设置class。

 <script>
$("ul li:eq(1)").attr({class:"lili"});
</script>
结果:
第二个li的html:<li class="lili" title="橘子汁" value="123">橘子</li>

(3)获取<ul>里第2个<li>设置id。

 <script>
$("ul li:eq(1)").attr({id:"lili"});
</script>
结果:
第二个li的html:<li id="lili" title="橘子汁" value="123">橘子</li>

(4)获取<ul>里第2个<li>设置style。

 <script>
$("ul li:eq(1)").attr({style:"color:red"});
</script>
结果:李易峰的字体颜色是红色

题外话:删除属性:removeAttr();

$("ul li:eq(1)").removeAttr ("title");
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值