我正在使用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如何递增?
输出
答案 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
变量完全相同,我们只是更加具体到我们想要使用的名称。