示例jquery获取兄弟的索引/位置

时间:2012-10-19 03:01:14

标签: javascript jquery indexing

假设我有以下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'),如何确定e相对于其兄弟df的位置或位置/索引?换句话说,我期望返回值1(如果基于零的索引)或2(如果一个基础索引),因为它是ul列表中的第二个元素。

5 个答案:

答案 0 :(得分:17)

简单:var idx = $('#e').index() // zero based

答案 1 :(得分:2)

您可以使用.index()来获取元素相对于其兄弟的基于零的索引。

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

http://jsfiddle.net/LXS9F/

答案 2 :(得分:2)

您也可以使用var idx = $("#e").prevAll().size()

答案 3 :(得分: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());
        });
    });
});

答案 4 :(得分:0)

function getIndex(id) {
    $('ul > li').each(function() {
        if ($(this).attr('id') == id) {
            return i;
        }
    });
    return 0;
}