有没有更简单的方法可以在一个 UL 中获取 LI 列表编号



我有以下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>

在我的方法中,为每个li设置属性number

i = 0;
$('li').each(function()
    {
        $(this).attr('number',i);
        i++;
    });

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

这是jsFiddle演示http://jsfiddle.net/8tpab84s/,正在工作

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

有没有更简单的方法来代替这种方法? 无需设置任何属性。

感谢您的回复。

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

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

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

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

演示

 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;

最新更新