问答详情
源自:3-1 jQuery的属性与样式之.attr()与.removeAttr()

function(i, val)能不能详细解释一下这个函数?

1.这里的i和val上文没有赋值也不是变量,为什么这里就能起作用呢?

2.有人说i是指索引值,那么$("input:eq(2)").attr('value',function(i, val){
      return '通过function设置' + val
     })

这里貌似没有用到索引值,它的i是否没有实际作用呢?

3.这个函数就是固定的这个样子吗,还是说它的参数i和val是写代码的人自定义的呢?


提问者:苏子晨 2017-05-08 14:47

个回答

  • qq_說些什庅_0
    2017-05-12 23:20:14
    已采纳

    1. 这里的i和val上文没有赋值也不是变量,为什么这里就能起作用呢?

    这里的i代表index 就是前面选择器的index也就是2。val是当前的属性值。

    2.有人说i是指索引值,那么$("input:eq(2)").attr('value',function(i, val){
          return '通过function设置' + val
         })

    这里貌似没有用到索引值,它的i是否没有实际作用呢?

    i代表选择器的index值(选择器不一样index范围不一样!)函数的参数在函数里可以不被引用!

    3.这个函数就是固定的这个样子吗,还是说它的参数i和val是写代码的人自定义的呢?

    函数可以随便定义,但传入的参数就这两个(index和value),参数名字随便叫。参数在函数内部可用可不用(当然不用也没必要设置这个函数了。属性给个值就行了)。函数内部也是不固定的,返回的值就是这个属性的值。


  • Robert_Langdon
    2017-06-20 00:07:53

    这个i是0是因为你选择器里就一个元素,你把条件改成input:lt(3),再输出每个i,就不都是0了

  • 懒惰的猫想吃鱼
    2017-06-09 11:43:27

    那意思是这个i是搞的充数的,当个空壳子用?

  • 慕粉3340039
    2017-05-08 21:28:02

    这个地方是每个位置的参数含义是固定的,参数的名字是随便取得,你可以把参数换个名字,效果还是一样的。