如何使用attr()Jquery

时间:2015-07-21 07:32:58

标签: jquery

我正在使用attr()

从过去几个月开始,我是jQuery的新手。我正在接受jQueryApi网站的推荐,我看到了这个:

<div>Zero-th <span></span></div>
<div>First <span></span></div>
<div>Second <span></span></div>

$("div")
    .attr( "id", function( arr ) {
        return "div-id" + arr;
     })
    .each(function() {
        $( "span", this ).html( "(id = '<b>" + this.id + "</b>')" );
     });

我不明白这个东西可以解释一下吗?什么是this变量以及这些id如何递增?

输出

enter image description here

1 个答案:

答案 0 :(得分:1)

作为第二个参数传递给attr函数的函数接收当前匹配的元素的索引位置。该函数的arr参数实际上是元素的索引。所以第一个是0,第二个是1,依此类推。

这个索引用于组合元素的新id属性。

参考:http://api.jquery.com/attr/#attr-attributeName-function

  

.attr( attributeName, function )

     

<强>的attributeName   要设置的属性的名称。

     

功能类型:功能(整数索引,字符串attr)
  将值返回到set的函数。这是当前的元素。接收集合中元素的索引位置和旧属性值作为参数。

each命令中,回调接收当前正在迭代的项目。此项目由this变量表示。您还可以通过在回调中命名参数来指定要使用this以外的其他变量:

.each(function(the_element) {
  $( "span", the_element ).html( "(id = '<b>" + the_element.id + "</b>')" );
});

通过在回调the_element中命名第一个扩充,我们现在可以使用该变量来表示当前元素 - 这与使用this变量完全相同,我们只是更加具体到我们想要使用的名称。