關于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?
2016-12-11
所以第一種情況i=0;第二種情況i= 0 1 2 3 ,input:eq(2)的i=2;第三種情況i=0 1 2,input:eq(2)的i=1;
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,不知道這么說你明白不明白~