1

我有以下 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元素所有子级的索引。我该怎么做呢?

谢谢。

4

2 回答 2

3

我想你想要这个:

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

每次将迭代索引传递给回调,因此通过分解迭代,您可以要求 jQuery 为您计数。

于 2013-06-08T16:19:55.833 回答
0

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

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

 if (SomeCondition) {

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

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

于 2013-06-08T16:45:46.500 回答