使用jquery获取具有特定类的li的索引位置

使用jquery获取具有特定类的li的索引位置,jquery,Jquery,我试图让jquery返回顶级li的索引位置,其类为.open。例如: <ul> <li class="open">something <ul> <li>ignore this</li> <li>ignore this</li> </ul> </li> <li>something</li> <l

我试图让jquery返回顶级li的索引位置,其类为.open。例如:

<ul>
  <li class="open">something
     <ul>
        <li>ignore this</li>
        <li>ignore this</li>
     </ul>
  </li>
  <li>something</li>
  <li class="open">something</li>
</ul>
但这会产生奇怪的结果。我也试过:

console.log($('ul:first li.open').index());
$('ul:first li.open').each(function(){
   console.log($(this).index());
}
但这同样不能返回预期的结果


谢谢。

将字符串选择器传递到
index()
方法:

 console.log($(this).index('.open'));
这将返回0和1


将字符串选择器传递给
索引()
方法:

 console.log($(this).index('.open'));
这将返回0和1


你在找这样的东西吗?“>”将确保只选择直接子项

$(document).ready(function(){
    $('ul:first > li.open').each(function(){
        console.log($(this).index());
    });
});

你在找这样的东西吗?“>”将确保只选择直接子项

$(document).ready(function(){
    $('ul:first > li.open').each(function(){
        console.log($(this).index());
    });
});

这很奇怪。我尝试了这个,它返回0和1。我知道它在做什么。这是正确的,因为只有两个元素具有li.open。但是我试图得到ul li中的索引位置,它有类。打开。。。。。如果你明白我的意思。@user1001421不,我不明白你的意思。我想要的是与ul li兄弟姐妹相关的职位。但是:
$(this.index()
,因为您已经在使用它了,如果没有,我很抱歉,但我真的看不到您在这里要找什么???“但我正试图在ul li中获得具有class.open…..的索引位置。”在您发布的代码中,没有一个元素是这样的OMG它现在起作用了。我一定是在缓存什么东西。我一直得到0和1:)非常感谢。抱歉搞混了,这很奇怪。我尝试了这个,它返回0和1。我知道它在做什么。这是正确的,因为只有两个元素具有li.open。但是我试图得到ul li中的索引位置,它有类。打开。。。。。如果你明白我的意思。@user1001421不,我不明白你的意思。我想要的是与ul li兄弟姐妹相关的职位。但是:
$(this.index()
,因为您已经在使用它了,如果没有,我很抱歉,但我真的看不到您在这里要找什么???“但我正试图在ul li中获得具有class.open…..的索引位置。”在您发布的代码中,没有一个元素是这样的OMG它现在起作用了。我一定是在缓存什么东西。我一直得到0和1:)非常感谢。很抱歉造成混淆。这也有帮助。谢谢。这也有帮助。谢谢