使用jQuery(“#someIdName”)元素引用无法识别的表达式

时间:2012-09-25 04:03:41

标签: jquery jquery-ui prototype tag-it

抱歉,我在发帖前确实找到了答案。但我无法找到我想要的东西。

我正在尝试使用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"

3 个答案:

答案 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。