jquery index()有一些特定的选择器......?

Ano*_*ous 5 javascript indexing jquery jquery-selectors html-lists

我有一个李的父母,给了一个李的指针,我想得到它作为一个孩子的位置.

为此,我使用了:

li.index()
Run Code Online (Sandbox Code Playgroud)

现在......我还有一个条件,它应该只在这些在css中有display:block属性的子节点中找到一个索引.

我尝试了其他一些方法,但我无法解决它.有任何想法吗?

编辑:PS:或者更确切地说是没有display:none属性的.

编辑2:嗯,我这些都需要引用父或特定的ID,但如果只有一个指向li的指针,例如:

<ul>
<li>Foo</li>
<li>Bar</li>
<li>Fiz</li>
<li>Buz</li>
</ul>

li=$('li:nth-child(n)');
Run Code Online (Sandbox Code Playgroud)

现在,让我们假设我只知道一个变量,并且我希望它们中的索引没有css显示:none propery ...

解决了这是做了什么:

li.add(li.siblings()).filter(':visible').index( li );
Run Code Online (Sandbox Code Playgroud)

感谢您帮助我提出了很好的想法和不同的方法.:)

Sam*_*son 5

使用以下标记:

<ul>
  <li>Foo</li>
  <li>Bar</li>
  <li style="display:none">Fiz</li>
  <li>Buz</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我们可以确定最后li所有可见列表项的(从零开始)索引:

// 2
$("li:last").index("li:visible");
Run Code Online (Sandbox Code Playgroud)

如果我们要删除:visible选择器,并要求最后一个的索引:

// 3
$("li:last").index("li");
Run Code Online (Sandbox Code Playgroud)

更新:使用变量

如果您有对特定列表项的变量引用:

var lastItem = $("#parent li:last");
Run Code Online (Sandbox Code Playgroud)

您仍然可以在同一容器中的可见子项中获取其索引:

var index = $(lastItem).index("#parent li:visible");
Run Code Online (Sandbox Code Playgroud)

更新2:没有显式父ID

var index = lastItem.parent().find("li").index( lastItem );
Run Code Online (Sandbox Code Playgroud)