循环列表?

时间:2013-03-06 22:45:05

标签: jquery

<ul id ="questions">
    <li class="question"></li>
    <li class="question"></li>
    <li class="question"></li>
</ul>

如何遍历每个列表元素?

到目前为止,我有:

$("#questions li").each(function() { });

但没有运气,任何想法?

我要提到除了第一个li之外的其他所有内容都是动态添加的,这就是为什么循环没有把它们拿起来的?

4 个答案:

答案 0 :(得分:1)

LIVE DEMO

使用.ready function,这样做会在读取后进行DOM修改。

$(function(){
   $("#questions li").each(function() {
          // DO SOMETHING
   });
});

http://api.jquery.com/ready/

或使用您的fireBug或devTool获取任何其他可能的错误。

答案 1 :(得分:0)

使用函数参数获取每个列表项的索引和值:

$("#questions li").each(function(index, value) {
    console.log(index + '' + $(value).html());
});

答案 2 :(得分:0)

您似乎正在遍历每个列表项。

如果您将dom元素更改为:

<ul id ="questions">
    <li class="question">one</li>
    <li class="question">two</li>
    <li class="question">three</li> 
</ul>

然后在文档加载时使用以下jQuery代码:

$(function(){
   $("#questions li").each(function() {
          alert($(this).html()); //Or whatever you want to do with that item
   });
});

你应该输出:

  • 一个
  • 2
  • 3

注意:您可以在http://jsfiddle.net/

测试JavaScript和jQuery

答案 3 :(得分:0)

在迭代每个列表项时,您想要做什么?使用.each函数应该很有效。如果您遇到问题,可能是因为您过早调用该函数,在这种情况下ready function(如提及的@roXon)将解决该问题。否则,如果您遇到问题。这可能是因为id

上的=<ul>符号之间存在空间

这是一个迭代每个元素的jQuery示例:

$('#questions li').each(function() {
    var i = $(this).index() + 1;
    $(this).text("List item " + i);
});

随意使用它:http://codepen.io/sdthornton/pen/gkayG