在这段代码中函数返回什么?并且该值被赋值给每个div的id属性。我发现它返回第一个div的div-id0,第二个div的div-id1。为什么会发生这种情况?< / p>
$("div").attr("id", function (arr) {
return "div-id" + arr;
})
答案 0 :(得分:3)
如果提供函数作为attr
的第二个参数,则对选择中的每个元素执行一次该函数,并将返回值设置为该元素的属性值。
选择中的位置作为回调的第一个参数传递;属性的当前值作为第二个参数传递。
$("div").attr("id", function (arr) {
return "div-id" + arr;
})
因此,此代码将每个id
元素的div
设置为div-id
加上选择中元素的位置。所以第一个是div-id0
,第二个div-id1
等等。
最好将参数命名为index
,而不是混淆arr
。
答案 1 :(得分:2)
请参阅http://api.jquery.com/attr/
在文档中
.attr( attributeName, function(index, attr) )
attributeName
要设置的属性的名称。
function(index, attr)
将值返回到set的函数。这是当前的元素。 接收集合中元素的索引位置和旧属性值作为参数。
答案 2 :(得分:2)