5

私にはliの親がいて、liへのポインタが与えられたので、その位置を子として取得したいと考えています。

このために私は使用しました:

li.index()

今... もう 1 つの条件があります。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)');

ここで、変数が 1 つだけわかっているとします。css display: none プロパティを持たないこれらの変数のインデックスが必要です...

解決済みこれはそれをしたものです:

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

素晴らしいアイデアと異なるアプローチで私を助けてくれてありがとう。:)

4

3 に答える 3

5

次のマークアップを使用します。

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

li最後に表示されたすべてのリスト項目の (0 から始まる) インデックスを決定できます。

// 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 );
于 2012-05-14T06:14:24.393 に答える
0

このANSを試す

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

フィドルリンク http://jsfiddle.net/VqeHW/

于 2012-05-14T06:14:16.860 に答える
0

display:none 要素にクラスを指定してから、.class セレクターを使用します。

$('#theList .visible').each(function () {
  var index = $('#theList .visible').index(this);
});
于 2012-05-14T06:21:33.580 に答える