如何找到没有id的li的索引?

时间:2013-04-15 09:52:17

标签: javascript jquery jsp

您好我正在使用twitter bootstrap在JSP中创建标签。

<ul>
    <li id="first"><a href="#datacollector" target="main"data-toggle="tab">General</a></li>
    <li><a href="#dataTab" data-toggle="tab">Transport</a></li>
    <li><a href="#datamap" data-toggle="tab">Data Map</a></li>
    <li><a href="#schedule" data-toggle="tab">Schedule</a></li>
</ul>

现在我已为第一个LI提供了ID,但动态地我会将{id} LI提供给我。

如何找到没有id的LI索引?如果第二个没有id,它应该只找到那个LI的索引,不应该检查剩余的LI我怎么能得到它?

5 个答案:

答案 0 :(得分:0)

您可能正在寻找Siblings()。您还可以获得Parent()的引用并从那里开始。

答案 1 :(得分:0)

jQuery有一个功能:

$('li').on('click',function(){
    alert($(this).index());
});

注意:.index()返回从零开始的索引。

Here是一个有效的jsfiddle

要仅定位没有ID的li,请使用:not()选择器和[id]属性选择器:

$('li:not([id])').on('click',function(){
    alert($(this).index());
});

Updated jsFiddle

<强>来源(S)

jQuery API - .index()

答案 2 :(得分:0)

$('ul li').each(function(index){

            $(this).addClass('index-'+index);

        });

此处示例:

http://jsfiddle.net/superbshivam/HqpSF/

答案 3 :(得分:0)

尝试使用:not .first().index()

var idx = $('li:not([id])').first().index();
console.log(idx);

Demo

这将为您提供没有id的第一个li的索引。

答案 4 :(得分:0)

非常快速和肮脏的方法,但它应该让你开始你需要的东西。

var indexWithoutId = -1;

$(document).ready(function() {
    findIndexWithoutId();
    console.log("without id: " + indexWithoutId);
});

function findIndexWithoutId() {
    $("li").each(function() {
        var index = $(this).index();
        var id = $(this).attr("id");

        if (typeof(id) === "undefined") {
            indexWithoutId = index;
            return false;
        }
    });
}

Working jsfiddle example