有没有更简单的方法来获得一个UL的LI列表号?

时间:2014-12-14 13:29:13

标签: javascript jquery html

我有以下HTML代码:

<ul>
    <li>Text</li>  <!-- number:0; means first one-->
    <li>Text</li>  <!-- number:1; second one-->
    <li>Text</li>  <!-- number:2; third one-->
    <li>Text</li>  <!-- number:3 -->
    <li>Text</li>  <!-- number:4 -->
    <li>Text</li>  <!-- number:5 -->
</ul>

在我的方法中,为每个number

设置一个属性li
i = 0;
$('li').each(function()
    {
        $(this).attr('number',i);
        i++;
    });

使用$(this).attr('number')获取其编号;

这里是jsFiddle DEMO http://jsfiddle.net/8tpab84s/ ,正在运作

但我认为方法很复杂,如果DOM li被更改,我需要再次设置数字属性。

是否有更简单的方法来代替此方法?没有设置任何属性。

感谢您的回复。

2 个答案:

答案 0 :(得分:5)

您可以将attr()与函数一起用作第二个参数:

$('li').attr('number', function(_index) {
    return _index;
});

演示:http://jsfiddle.net/techfoobar/8tpab84s/4/

感谢给用户:NicoSantangelo - 你可以简单地使用回调函数的第一个参数而不是$(this).index()

答案 1 :(得分:1)

DEMO

 var i = 0;
    $('li').each(function(i)
        {
           alert(i);
        });

你可以在那之后使用if语句

      var i = 0;
        $('li').each(function(i)
            {
               if(i == 1){ // that mean the li number 2
                 // your code here
               }
            });

并获得所有李的号码只需使用

$('li').length;