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

时间:2014-04-01 15:29:40

标签: jquery

我正在尝试让jquery返回顶级li的索引位置,并使用.open类。 EG:

<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>

因此,在上述情况下,我希望它忽略第二个ul以下的任何内容。并使用.open类返回顶级索引位置(仅限IE。ul li siblings)。

所以上面会回来: 0和2

我试过这个:

console.log($('ul:first li.open').index());

但这会返回奇怪的结果。我也试过这个:

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

但是,这并没有返回预期的结果。

感谢。

2 个答案:

答案 0 :(得分:4)

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

 console.log($(this).index('.open'));

这将返回0和1。

DEMO jsFiddle

答案 1 :(得分:1)

你在找这样的东西吗? &#39;&gt;&#39;将确保只选择直接的孩子。

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