jQuery选择器语法给出了Firefox警告

时间:2009-12-17 17:03:30

标签: jquery firefox syntax append warnings

以下代码

stringref = "tab_2";
jQuery('.someclass a:not(.someclass #a_someclass_'+stringref+')').css('color', '#000');

在FF 3.5.5错误控制台中给出了这个警告,我无法弄清楚原因:

Warning: Missing closing ')' in negation pseudo-class '#a_someclass_tab_2'.

我的语法是否使我失败或者FF失去了疯狂?

4 个答案:

答案 0 :(得分:4)

我认为你的选择器过于复杂 - 我不认为:not()伪类中允许使用空格。您是否要尝试匹配a .someclass个没有给定ID的后代?如果是这样,请删除.someclass中的:not()

答案 1 :(得分:3)

Firefox(3.5.6)确实会发出警告( 如果你没有在Firebug中看到它,那是因为你没有启用'显示CSS错误' - 请参阅Firebug控制台选项卡。)

Firefox以误报的方式将jQuery选择器语法解析为不兼容的CSS。忽略此FF警告是安全的(记住这不是错误)。

答案 2 :(得分:2)

我第二个戴夫,因为它很可能是你选择器中的空间。

与CSS标准相比,jQuery中的:not()语法得到了增强,因此解析器似乎发出警告,因为它只检查CSS合规性。

答案 3 :(得分:1)

语法看起来很好,并没有给我任何错误。但我会简化一下,这可以帮助你避免误报警告。

var stringref = "tab_2";
jQuery('a.someclass:not(#a_someclass_'+stringref+')').css('color', '#000');