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

5
我正在尝试在列表中的每个元素后面简单地添加逗号。
$('#tag_cloud-2 div.tagcloud a').each(function(){
  console.log($(this));
  $(", ").after($(this));
});

控制台输出的标签表明它已经找到了它们。我也尝试过使用insertAfter,但是没有成功。这似乎应该是一件非常简单的事情!感谢您指出我所缺少的内容。


", "被解释为选择器,因此无效。而且你使用.after()是错误的。请参见:http://api.jquery.com/after/。 - Felix Kling
我认为你的意思是 $(this).after(','); - designosis
你想把这个写到哪里?逗号分隔的列表是应该发送到控制台还是其他地方? - PCasagrande
非常感谢。我完全误读了那份文档。 - panzhuli
2个回答

5

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

但是

$("<span>, </span>").after($(this)); 可以工作,因为这是一个有效的标记。

尝试:

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

或者

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

或者

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

1

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

你可以反转你的逻辑,从$(this)开始,然后调用after()

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

因为after()如果其中一个参数是非标记字符串,它会创建一个新的文本节点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接