在这段代码中,函数返回什么?并且该值被分配给每个div的id属性。我发现它返回第一个div的div-id0,第二个div的返回值是div-id1。正在发生?jquery自动返回值
$("div").attr("id", function (arr) {
return "div-id" + arr;
})
在这段代码中,函数返回什么?并且该值被分配给每个div的id属性。我发现它返回第一个div的div-id0,第二个div的返回值是div-id1。正在发生?jquery自动返回值
$("div").attr("id", function (arr) {
return "div-id" + arr;
})
在文档
.attr(attributeName, function(index, attr))
attributeName
设置属性的名称。
function(index, attr)
函数返回值进行设置。这是当前的元素。 接收集合中元素的索引位置和旧属性值作为参数。
如果提供函数作为attr
的第二个参数,则该函数对选择中的每个元素执行一次,并将返回值设置为该元素的属性值。
选择中的位置作为第一个参数传递给回调;该属性的当前值作为第二个参数传递。
$("div").attr("id", function (arr) {
return "div-id" + arr;
})
所以这个代码将每div
元素div-id
加元在选择位置的id
。所以第一个将是div-id0
,第二个div-id1
等
这将是更好的命名参数index
,而不是混淆arr
。
看一下[documentation](http://api.jquery.com/attr/)会发现:'.attr(attributeName,function(index,attr))'。所以'arr'是元素集中元素的索引。 – 2011-06-03 11:37:03