JQuery语法错误,无法识别的表达式:,

时间:2012-07-31 17:15:26

标签: jquery insertafter

我试图在列表中的每个元素之后添加一个逗号。

$('#tag_cloud-2 div.tagcloud a').each(function(){
  console.log($(this));
  $(", ").after($(this));
});

控制台吐出标签,所以我知道它正在找到它们。我也尝试过insertAfter,但没有运气。这样接缝应该是这么简单的事情!谢谢你指出我错过了什么。

2 个答案:

答案 0 :(得分:5)

$(', ')被视为选择器(无效),因为它无法创建包含字符串的文本节点。

但是

$("<span>, </span>").after($(this));因为有效的标记而有效。

尝试:

$(this).after(', ');

$(this).append(', ');

$(this).text(function(i, oldText) {
  return oldText + ', ';
})

答案 1 :(得分:1)

jQuery的$()功能并不像那样。在非标记字符串上调用它不会创建包含该字符串的文本节点。

您可以反转您的逻辑,从$(this)开始,然后拨打after(),但是:

$(this).after(", ");

因为after()的一个参数是非标记字符串,所以{{1}}会创建一个新的文本节点。