【问题标题】:jquery automatic return valuejquery自动返回值
【发布时间】: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是元素集合中元素的索引。

标签: javascript jquery return


【解决方案1】:

http://api.jquery.com/attr/

在文档中

.attr( attributeName, function(index, attr) )

attributeName要设置的属性名称。

function(index, attr) 返回要设置的值的函数。这是当前元素。 接收集合中元素的索引位置和旧属性值作为参数。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您提供一个函数作为attr 的第二个参数,该函数将对选择中的每个元素执行一次,并且返回值设置为该元素的属性值。

      选择中的位置作为第一个参数传递给回调;属性的当前值作为第二个参数传递。

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

      所以这段代码将每个div 元素的id 设置为div-id 加上该元素在选择中的位置。所以第一个是div-id0,第二个是div-id1,以此类推。

      最好将参数命名为index,而不是令人困惑的arr

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-13
        • 2023-03-24
        • 2015-10-24
        • 1970-01-01
        • 2012-05-14
        • 2016-01-10
        • 2016-04-30
        相关资源
        最近更新 更多