为了账号安全,请及时绑定邮箱和手机立即绑定

关于jq中attr(name,function(index,val){})方法中index的疑问

    <form>
        <input type="text" value="设置value" />
        <input type="text" value="获取value"/>
        <input type="text" value="回调拼接value" />
        <input type="text" name="test" value="删除value" />
    </form>
<script type="text/javascript">
    //找到第三个input,通过使用一个函数来设置属性
    //可以根据该元素上的其它属性值返回最终所需的属性值
    //例如,我们可以把新的值与现有的值联系在一起:
    $('input:eq(2)').attr('value',function(i, val){
    return i//'通过function设置' + val
    })
    </script>

代码如上


资料上说attr(name,function(index,val){})中index是指选中元素在同级元素的index值   但上面这个例子里这个input的index不应该是2么 为什么返回的是0?

正在回答

2 回答

所以第一种情况i=0;第二种情况i= 0 1 2 3 ,input:eq(2)的i=2;第三种情况i=0 1 2,input:eq(2)的i=1;

0 回复 有任何疑惑可以回复我~
#1

sytkess 提问者

好的 谢谢 我明白了
2016-12-11 回复 有任何疑惑可以回复我~

这个我刚才试了一下,这个i的值应该是$('input:eq(2)')中input:eq(2)的索引值。但是!如果你把其他元素一并放进来的话,像$('input:eq(2),input:eq(1),input:eq(3),input:eq(0)')这样,就算你乱它们的本来顺序,返回的i也是按他们实际的索引号来排的。再但是!上面是4个都引用了,如果你只添加一部分,像$('input:eq(2),input:eq(1),input:eq(3)')这样,情况有又不一样了,返回的值是这三个按实际的排序方式下的新数组的索引号。



总结起来就是,返回i的这个索引号,是按他们实际排序的情况,结合你所查找的元素,新生成另一个数组(就是$(按实际索引排序的新数组--就算打乱顺序查找也不会影响排序)),这个新数组的索引号就是i,不知道这么说你明白不明白~

1 回复 有任何疑惑可以回复我~
#1

慕粉4340077

这个知识是不是在wacschool中学的?慕课网这方面讲的比较笼统,很多知识都忽略了,当然我喜欢慕课网的页面风格,一面讲解一面练习。
2016-12-18 回复 有任何疑惑可以回复我~
#2

自律让人自由4008941 回复 慕粉4340077

这是我自己试的。。。慕课最多就是带你过一遍,其实学完没什么用,还有很多东西要自己补,我现在感觉就是什么也不会,但又快学完了
2016-12-18 回复 有任何疑惑可以回复我~
#3

qq_谜离_03319966 回复 自律让人自由4008941

attr(name,function(0,val){}) 这里我直接让index=0 但是 val却无法得到当前值呢
2016-12-19 回复 有任何疑惑可以回复我~
#4

自律让人自由4008941 回复 qq_谜离_03319966

你可以F12打开控制台 自己看报错 这里的意思i代表的是一个变量 function(i,val){} 的意思是传入一个变量i 你可以把i改成其他任何字母a b c随你喜欢 他的意思不变 但是变量第一个字符必须是字母、下划线、美元符 你这相当于直接传了个值进去 相当于我给你个空户口本 告诉你可以怎么填 但我直接给你个填了名字的户口本给你 你能认么 你把0改成_0变成变量 传参 就么没问题了
2016-12-19 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

关于jq中attr(name,function(index,val){})方法中index的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信