10

私が次のhtmlを持っているとしましょう

<ul>
  <li id="a">a</li>
  <li id="b">b</li>
  <li id="c">c</li>
</ul>
<ul>
  <li id="d">d</li>
  <li id="e">e</li>
  <li id="f">f</li>
</ul>

jQueryを使用してアイテムを取得した場合、その兄弟と$('#e')の相対的な位置または位置/インデックスをどのように決定しますか?つまり、値1(ゼロベースのインデックスの場合)または2(1ベースのインデックスの場合)がリストの2番目の要素であるため、返されることを期待しています。edful

4

5 に答える 5

18

単純:var idx = $('#e').index() // zero based

于 2012-10-19T03:03:20.200 に答える
2

を使用.index()して、兄弟に関連する要素のゼロベースのインデックスを取得できます。

$('#e').index();

http://jsfiddle.net/LXS9F/

于 2012-10-19T03:05:57.373 に答える
2

varidx=を使用することもできます$("#e").prevAll().size()

于 2012-10-19T03:07:04.827 に答える
1

これを試すこともできます:

$(function() {
    $('ul li').each(function(idx, e) {
        $(this).on('click', function() {
            alert(idx);
        });
    });
});

唯一の問題は、現在li、ページ全体ですべてのインデックスが作成されることです。

編集

liこれは、すべてのコンテンツのインデックスを提供します。

$(function() {
    $('ul li').each(function(idx, e) {
        $(this).on('click', function() {
            alert($('#' + $(this).attr('id')).index());
        });
    });
});
于 2012-10-19T03:06:32.703 に答える
0
function getIndex(id) {
    $('ul > li').each(function() {
        if ($(this).attr('id') == id) {
            return i;
        }
    });
    return 0;
}
于 2012-10-19T03:07:25.400 に答える