我对jQuery的理解是,这两行代码在功能上应等效:
var firstIndex = ui.item.index();
console.log("firstIndex ", firstIndex);
var secondIndex = self.view.ui.childContainer.index(ui.item[0]);
console.log("secondIndex ", secondIndex);
检查我的DOM,我可以清楚地看到
ui.item[0].parentNode
与self.view.ui.childContainer[0]
是相同的元素。因此,我希望子级上的父级调用索引产生与子级上的索引相同的索引。但是,当从父级调用时,我得到-1
。我有什么误会?
更新:这是一个JsFiddle:http://jsfiddle.net/u2wE9/1/
最佳答案
从JQuery文档中:
说明:从匹配项中搜索给定元素
元素。
因此,它不在孩子中间搜索。
如果我理解正确,那么这就是在这种情况下的真正意图(例如):
的HTML:
<ul id='parent'>
<li id='child-one'></li>
<li id='child-two'></li>
<li id='child-three'></li>
</ul>
js:
var firstIndex = $('#child-three').index();
console.log("firstIndex ", firstIndex);
var secondIndex = $("li").index($('#child-three'));
console.log("secondIndex ", secondIndex);