關(guān)于jq中attr(name,function(index,val){})方法中index的疑問
????<form> ????????<input?type="text"?value="設(shè)置value"?/> ????????<input?type="text"?value="獲取value"/> ????????<input?type="text"?value="回調(diào)拼接value"?/> ????????<input?type="text"?name="test"?value="刪除value"?/> ????</form> <script?type="text/javascript"> ????//找到第三個(gè)input,通過使用一個(gè)函數(shù)來設(shè)置屬性 ????//可以根據(jù)該元素上的其它屬性值返回最終所需的屬性值 ????//例如,我們可以把新的值與現(xiàn)有的值聯(lián)系在一起: ????$('input:eq(2)').attr('value',function(i,?val){ ????return?i//'通過function設(shè)置'?+?val ????}) ????</script>
代碼如上
資料上說attr(name,function(index,val){})中index是指選中元素在同級(jí)元素的index值 ? 但上面這個(gè)例子里這個(gè)input的index不應(yīng)該是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
這個(gè)我剛才試了一下,這個(gè)i的值應(yīng)該是$('input:eq(2)')中input:eq(2)的索引值。但是!如果你把其他元素一并放進(jìn)來的話,像$('input:eq(2),input:eq(1),input:eq(3),input:eq(0)')這樣,就算你亂它們的本來順序,返回的i也是按他們實(shí)際的索引號(hào)來排的。再但是!上面是4個(gè)都引用了,如果你只添加一部分,像$('input:eq(2),input:eq(1),input:eq(3)')這樣,情況有又不一樣了,返回的值是這三個(gè)按實(shí)際的排序方式下的新數(shù)組的索引號(hào)。
總結(jié)起來就是,返回i的這個(gè)索引號(hào),是按他們實(shí)際排序的情況,結(jié)合你所查找的元素,新生成另一個(gè)數(shù)組(就是$(按實(shí)際索引排序的新數(shù)組--就算打亂順序查找也不會(huì)影響排序)),這個(gè)新數(shù)組的索引號(hào)就是i,不知道這么說你明白不明白~