抱歉,我在发帖前确实找到了答案。但我无法找到我想要的东西。
我正在尝试使用jQuery UI的tag-it小部件。我尝试将.tagit()
方法应用于元素,如下所示:
jQuery("#myTags:.5aedf589").tagit();
我尝试应用tagit()
方法的网页上的实际元素是:
<ul id="myTags:.5aedf589">
这应该是一个合法的ID名称,但以防万一我只用"#myTags"
尝试并且遇到同样的问题。
我使用的是jQuery而不是$ alias,因为我的脚本包含Prototype和jQuery。首先加载jQuery,并且从文档中说它我应该能够使用jQuery而不是$
,即使不使用noConflict()
。我也尝试过使用noConflict,但它没有帮助。
问题是上面的jQuery表达式会导致以下JavaScript错误:
Syntax error, unrecognized expression: "#myTags:.5aedf589"
答案 0 :(得分:2)
:
和.
在查询中具有特殊含义,句点是类选择器,冒号是伪选择器。如果你想将它们用于其他东西,你必须使用\
来转义它们,并转义\
以获取JS字符串;因此,在它们之前插入\\
。 http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F
jQuery("#myTags\\:\\.5aedf589").tagit();
答案 1 :(得分:0)
为什么不试试这个选择器并查看它是否有效
jQuery("[id*=5aedf589]").tagit();
它将选择具有5aedf589的id并选择该选择器.. 这只是为了检查选择器是否是实际问题。
如果您遇到问题,多个选择器可能会匹配转义。和:与\
答案 2 :(得分:0)
错误是由于元素的id。是的,它是HTML元素的有效ID,但是对于使用基于类的选择器的jquery:''引用伪选择器和'。'引用类就是为什么它会抛出无法识别的表达式错误。对于伪选择器,您不要在伪选择器之前使用类
你要么像@Juan Mendes所说的那样逃避它。或者改变元素的id。