jquery自动返回值

时间:2011-06-03 10:36:42

标签: javascript jquery return

在这段代码中函数返回什么?并且该值被赋值给每个div的id属性。我发现它返回第一个div的div-id0,第二个div的div-id1。为什么会发生这种情况?< / p>

$("div").attr("id", function (arr) {
  return "div-id" + arr;
})

3 个答案:

答案 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)

在jQuery中将函数传递给attrcss时,传递给函数的第一个参数是当前数组索引,第二个参数是当前值您要为当前元素设置的属性。