使用Jquery为列表项上的每个()输出计数

时间:2016-08-03 16:46:05

标签: jquery foreach

我有以下内容:

   <ul>
<li>one</li>
<li>Two</li>
<li>three</li>
<li>four</li>
<li>five</li>
<li>six</li>
</ul>

<div id="output">
</div>

我希望根据lis的数量输出另一个列表(#output)。我无法准确地将我的大脑包围起来。我认为这将是&#34;计算这个ul中的lis数,然后为每个输出计数/索引到#output div。

感谢任何帮助。

5 个答案:

答案 0 :(得分:0)

如果你想输出[li]的数量,你不需要每个(),你可以简单地使用.length属性,在你的情况下这个语句返回6。

$('li').length;

所以你的脚本可能是

$('#output').text($('li').length);

答案 1 :(得分:0)

您可以尝试这样做:

$('#output').append('<ul>');
$('ul li').each(function(){
    $('#output ul').append('<li></li>');
});
$('#output').append('</ul>');

显然,根据需要调整它。 此外,您还需要原始ul上的标识符。

答案 2 :(得分:0)

请查看下面的代码段。

有两种方法可以找到ul里面的li总数。

  1. $(&#34; ul li&#34;)。length;
  2. $(&#34; ul li&#34;)。size();
  3. &#13;
    &#13;
    $(document).ready(function(){
      alert($('ul li').length);
      alert($('ul li').size());
    });
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <ul>
      <li>one</li>
      <li>Two</li>
      <li>three</li>
      <li>four</li>
      <li>five</li>
      <li>six</li>
    </ul>
    
    <div id="output">
    </div>
    &#13;
    &#13;
    &#13;

答案 3 :(得分:0)

试试这个

$(document).ready(function() {
    var n = $( "li" ).length;
  $( "div#output" ).text( "There are " + n + " list items" );
});

https://jsfiddle.net/wgzwzgLc/6/

答案 4 :(得分:0)

如果要获取当前枚举数的索引,可以在.each()函数中执行.index($(this))。例如:

&#13;
&#13;
SELECT A.ID, A.EMPLOYEEID, A.LEVEL, PT.A, PT.B, PT.C, PT.D
FROM TABLEA A
INNER JOIN 
(
SELECT * FROM 
(SELECT ID, EMPLOYEEID, LEVEL FROM TABLEA) AS SOURCETABLE
PIVOT (
MAX([EMPLOYEEID])
FOR LEVEL IN ([A], [B], [C], [D])) AS PIVOTTABLE
) AS PT
ON A.ID = PT.ID
&#13;
var tmpElementIndex = {};
var $listItems = $('ul li');

$listItems.each(function(){
   tmpElementIndex = $listItems.index($(this)) + 1;
   $('.other').append('<p>' + tmpElementIndex + ' of ' + $listItems.length + '</p>');
})
&#13;
&#13;
&#13;

这肯定可以提高效率,但你明白了。