<ul id ="questions">
<li class="question"></li>
<li class="question"></li>
<li class="question"></li>
</ul>
如何遍历每个列表元素?
到目前为止,我有:
$("#questions li").each(function() { });
但没有运气,任何想法?
我要提到除了第一个li之外的其他所有内容都是动态添加的,这就是为什么循环没有把它们拿起来的?
答案 0 :(得分:1)
的 LIVE DEMO 强>
使用.ready function
,这样做会在读取后进行DOM修改。
$(function(){
$("#questions li").each(function() {
// DO SOMETHING
});
});
或使用您的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
});
});
你应该输出:
注意:您可以在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);
});