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

$("input:eq(2)").attr('value',function(i, val){ return i+ '通过function设置' + val })传参还是不明白

     $("input:eq(2)").attr('value',function(i, val){
      return i+ '通过function设置' + val
     })

这样可以试出来i=0

这个i是怎么解释的啊?

还有直接写0也是不可以

$("input:eq(2)").attr('value',function(0, val)

提问者:feng520 2018-03-30 09:33

个回答

  • 不来方夕莉
    2018-04-03 13:33:01
    已采纳

    一小时快速刷完基础一(并没有认真看,求个印象),系统推荐了你的问题,所以就去查了一下

    给你参考一下我的理解

    结合评论区与菜鸟教程的回答:
    attr('value',function(i, val)中的i是index索引。
    这点是完全没有错的。至于为什么需要使用i,或者其他英文字符,而数字会不显示
    是因为JavaScript不能识别数字等开头的函数,因此它既是索引,也是函数
    ——该函数可接收并使用选择器的 index 值和当前属性值。
    评论区有同学使用了input:eq(4),于是输出了0,1,2,3
    而使用只获取一个元素的input:eq(2),输出的是0
    据此我们可以推断,function(i, val)中的i,是用于接收索引的变量