我有一个李的父母,给了一个李的指针,我想让它成为一个孩子的位置。
为此我用过:
li.index()
现在......我还有一个条件,它应该只在这些在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)');
现在,让我们假设我只知道一个变量,并且我希望它们的索引中没有css显示:none propery ...
解决了这就是它:
li.add(li.siblings()).filter(':visible').index( li );
感谢您帮助我提出了很好的想法和不同的方法。 :)
答案 0 :(得分:5)
使用以下标记:
<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");
var index = lastItem.parent().find("li").index( lastItem );
答案 1 :(得分:0)
尝试这个问题
var listItem = document.getElementById('bar');
alert('Index: ' + $('li').index(listItem));
答案 2 :(得分:0)
给你的display:none元素一个类,然后使用.class选择器:
$('#theList .visible').each(function () {
var index = $('#theList .visible').index(this);
});