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

如何遍历每个列表元素?

到目前为止,我有:

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

但是没有运气,有什么想法吗?

我不得不提一下,除了第一个 li 之外的所有内容都是即时添加的,这就是为什么循环没有拾取它们的原因吗?

4

4 回答 4

1

LIVE DEMO

使用.ready function,这样做后,DOM 修改将在读取后发生。

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

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

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

于 2013-03-06T22:48:19.290 回答
0

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

$("#questions li").each(function(index, value) {
    console.log(index + '' + $(value).html());
});
于 2013-03-06T22:51:57.707 回答
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
   });
});

你应该输出:

注意:您可以在http://jsfiddle.net/测试您的 JavaScript 和 jQuery

于 2013-03-06T22:52:28.937 回答
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

于 2013-03-06T22:59:23.253 回答