我对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].parentNodeself.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);

07-24 09:50
查看更多