jquery自动返回值
Posted
技术标签:
【中文标题】jquery自动返回值【英文标题】:jquery automatic return value 【发布时间】:2011-09-07 17:35:21 【问题描述】:在这段代码中,函数返回什么?该值被分配给每个 div 的 id 属性。我发现它为第一个 div 返回 div-id0,为第二个 div 返回 div-id1。为什么会这样?
$("div").attr("id", function (arr)
return "div-id" + arr;
)
【问题讨论】:
查看documentation 会发现:.attr( attributeName, function(index, attr) )
。所以arr
是元素集合中元素的索引。
【参考方案1】:
见http://api.jquery.com/attr/
在文档中
.attr( attributeName, function(index, attr) )
attributeName
要设置的属性名称。
function(index, attr)
返回要设置的值的函数。这是当前元素。 接收集合中元素的索引位置和旧属性值作为参数。
【讨论】:
【参考方案2】:在jQuery中将函数传递给attr
或css
时,传递给函数的第一个参数是当前数组索引,第二个参数是你的属性的当前值正在尝试为当前元素设置。
【讨论】:
【参考方案3】:如果您提供一个函数作为attr
的第二个参数,该函数将对选择中的每个元素执行一次,并且返回值设置为该元素的属性值。
选择中的位置作为第一个参数传递给回调;属性的当前值作为第二个参数传递。
$("div").attr("id", function (arr)
return "div-id" + arr;
)
所以这段代码将每个div
元素的id
设置为div-id
加上该元素在选择中的位置。所以第一个是div-id0
,第二个是div-id1
,以此类推。
最好将参数命名为index
,而不是令人困惑的arr
。
【讨论】:
以上是关于jquery自动返回值的主要内容,如果未能解决你的问题,请参考以下文章
如何告诉 jquery 自动完成每行显示一项而不是一行中的整个返回值?