eq过滤器无法正常工作

时间:2011-10-03 22:03:12

标签: jquery

为什么这段代码不起作用?意思是什么都没有显示在ul标签中。

$("#server").each(function()
{
  var textValue = $(this).text();

  $('#list li').eq(counter).append('<li>'  + textValue + '</li>');      // <-- not working
  $('#list li').eq(counter).insertAfter('<li>'  + textValue + '</li>'); // <-- or not working
  $('#list')append('<li>'  + textValue + '</li>');                      // <-- or working
});

<div>
     <ul id="list"></ul>
</div>

3 个答案:

答案 0 :(得分:2)

  1. #server只能匹配一个元素。
  2. counter未定义。
  3. #list不包含任何内容,因此#list li与任何内容都不匹配。
  4. 您错过了append之前的一段时间。

答案 1 :(得分:0)

我看到两个问题。

    由于还没有$('#list li')
  1. <li>无法解决任何问题。它应该是ul而不是。
  2. 如果您在迭代期间查看具有eq的特定索引,您可能希望将当前索引传递到仿函数中,如下所示:$('#server').each(function(counter){... - 但可能counter来自其他地方,你发布的内容并不清楚。
  3. 此致 分贝

答案 2 :(得分:0)

我认为你对这个主题的完整答案是here in your previous question(在我的回答中阅读你对问题的评论)。

我认为你想要jQuery的方法.after()而不是.insertAfter()。完整的工作示例,包括jsFiddle here

$('#list li').eq(counter).after('<li>'  + textValue + '</li>');