[ jquery 方法 attr(name|properties|key,value|fn) ] 此方法操作匹配的元素或元素集中的属性

获取匹配的元素集合中的第一个元素的属性的值 | 设置每一个匹配元素的一个或多个属性:

  在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined,若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,请使用.prop()方法

  如果第二个参数是callback,那么需要返回的是属性值,函数传参解释如下:

  1:属性名称

  2:返回属性值的函数,第一个参数为当前元素的索引值,第二个参数为原先的属性值

  注意:使用此方法来设置样式时,需要注意的就是如果直接使用obj.attr('width','100px');的格式来设置的话,那么在代码中显示的就是类似于<div width='100px'></div>这种样式,要是想设置成为我们需要的行间样式建议:

  obj.attr('style','width:100px;height:100px');这种样式显示正确

实例:

<!DOCTYPE html>
<html lang='zh-cn'>
<head>
<title>Insert you title</title>
<meta http-equiv='description' content='this is my page'>
<meta http-equiv='keywords' content='keyword1,keyword2,keyword3'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- <script type='text/javascript' src='./js/jquery-3.0.0.js'></script> -->
<script type='text/javascript' src='./js/jquery-1.12.1.min.js'></script>
<style type='text/css'>
    #listDemo{list-style:none;}
    #listDemo li{width:350px;height:20px;margin:10px 0;background:red;text-align:center;font:400 13px/20px 'Courier New';color:#FFF;}
</style>
<script type='text/javascript'>
    $(function(){
        $('#listDemo li').attr('width',function(index,oldAttr){
            alert(index);
        }); 
        $('#listDemo li.bar').attr('style',function(index,oldAttr){
            /*
                只能取得处于行间的旧的属性,可能由于jquery版本等因素影响,需要注意
            */
            alert(oldAttr);
        }); 
    });
</script>
</head>
<body>
   <ul id='listDemo'> 
      <li class="foo">foo</li>
      <li class="bar" style='border:1px solid #F20;'>bar</li>
      <li class="baz">baz</li>
    </ul>
</body>
</html>

 

posted @ 2016-06-21 23:51  窗棂  Views(285)  Comments(0Edit  收藏  举报