查找某个类的父级索引

时间:2013-06-08 16:17:58

标签: javascript jquery

我有以下HTML:

<div class="Wrapper">

   <div class="SomeOtherClass"></div>
   <div class="SomeOtherClass"></div>

   <div class="MyClass">
       <div class="SomeElement" id="test"></div>
       <div class="SomeElement"></div>
   </div>

   <div class="MyClass">
       <div class="SomeElement" id="test2"></div>
       <div class="SomeElement"></div>
   </div>   

</div>

我有以下javascript:

$('.Wrapper').find('.SomeElement').each(function () {

    if (SomeCondition) {

       var TheElement = $(this);
       var TheIndexOfParentClass = TheElement... //HERE

       return;
    }
});

如您所见,我遍历所有SomeElements并选择一个。现在我想知道父类的索引(这里是“MyClass”)。例如,如果我选择“test”,则TheIndexOfParentClass应为0,如果我选择test2,则TheIndexOfParentClass应为1.请注意元素数量SomeOtherClass的变化可能会有所不同;我不想要父级的实际索引,我希望父级的索引相对于Wrapper元素的所有子级。我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:3)

我想你想要这个:

$('.Wrapper').find('.MyClass').each(function(TheIndexOfParentClass) {
    $('.SomeElement', this).each(function(){
       if (SomeCondition) {
          var TheElement = $(this);

each将迭代索引传递给回调函数,因此通过分解迭代,您可以让jQuery为您计算。

答案 1 :(得分:0)

如果你想坚持你的流程,你也可以通过将类传递给索引方法来实现这一点,

$('.Wrapper').find('.SomeElement').each(function () {

 if (SomeCondition) {

  var TheElement = $(this);
  var TheIndexOfParentClass = TheElement.parent().index('.MyClass'); //HERE
       return;
 }
});

我们在这里避免的是每个循环加倍。