为什么我不能使用变量:eq过滤器将数据附加到无序列表?

时间:2011-10-03 20:56:46

标签: jquery

为什么我不能使用变量计数器:eq过滤器将数据附加到无序列表?

例如,代码无效。它没有被更新到无序列表的div中。

 $('#list li:eq("+ counter +")').append('<li>' + variable + '<li>');

2 个答案:

答案 0 :(得分:2)

正确的语法:

$('#list li:eq(' + counter +')')

您必须使用相同的字符串分隔符,不能将它们混合在同一个字符串中。

更优雅的语法是:

$('#list li').eq(counter)

这样就不需要乱用字符串分隔符了。

答案 1 :(得分:1)

除了Shadow Wizard提到的字符串问题,如果您尝试在与li相同的级别添加另一个#list li标记,那么您的代码就不对了。附加,将添加一个孩子:

$('#list li').eq(n).append('<li>' + variable + '</li>')

在第n个LI标记内添加LI标记,而不是在第n个LI标记之后。来自jQuery doc

  

.append()方法将指定的内容作为最后一个子项插入   jQuery集合中每个元素的

如果您要执行的操作是在现有LI标记之后插入新的LI标记,但在同一级别,则可能会对.after()方法感兴趣:

$('#list li').eq(n).after('<li>' + variable + '</li>')

请参阅此处http://jsfiddle.net/jfriend00/PHkm4/了解工作示例。