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

jquery index() with some specific selector...?

本文关键字:jquery index 选择器      更新时间:2023-09-26

我有一个带有 li 的父母,并且给定指向 li 的指针,我想得到它作为孩子的位置。

为此,我使用了:

li.index()

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

我尝试了其他方法,但我无法解决它。有什么想法吗?

编辑:PS:或者,更确切地说,对于这些没有显示:无属性。

编辑2:好吧,我这些都需要引用父级或特定ID,但是如果只有一个指向li的指针怎么办,例如:

<ul>
<li>Foo</li>
<li>Bar</li>
<li>Fiz</li>
<li>Buz</li>
</ul>
li=$('li:nth-child(n)');

现在,假设我只知道一个变量,我希望它是没有 css 显示的变量中的索引:没有属性......

解决了 这就是它所做的:

li.add(li.siblings()).filter(':visible').index( li );

感谢您帮助我提出好主意和不同的方法。 :)

使用以下标记:

<ul>
  <li>Foo</li>
  <li>Bar</li>
  <li style="display:none">Fiz</li>
  <li>Buz</li>
</ul>

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

// 2
$("li:last").index("li:visible");

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

// 3
$("li:last").index("li");

更新:使用变量

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

var lastItem = $("#parent li:last");

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

var index = $(lastItem).index("#parent li:visible");

更新 2:没有明确的父 ID

var index = lastItem.parent().find("li").index( lastItem );

试试这个 ANS

   var listItem = document.getElementById('bar');
   alert('Index: ' + $('li').index(listItem)); 

小提琴链接 http://jsfiddle.net/VqeHW/

给你的 display:none 元素一个类,然后使用 .class 选择器:

$('#theList .visible').each(function () {
  var index = $('#theList .visible').index(this);
});