代码:
if (!($.browser.msie && $.browser.version.substr(0, 1) == '5')){
$('ul a span', '#menu'.not('{Developers}')).css('color', 'rgb(210,210,210)').hover(
function(){ $(this).animate({color: 'rgb(255,255,255)'}, 500); },
function(){ $(this).animate({color: 'rgb(210,210,210)'}, 200); }
);
}
这看起来像是正确的语法吗?它正在工作,但它正在抛出错误。不是一个函数。我在我的主页面加载的menu.js中调用此函数。它不是准备好的文档,除了错误之外它正在工作。如果它不工作,我会说我的核心jq库没有先加载,但确实如此。感谢帮助!注意,:不起作用,所以请不要建议我使用它。谢谢!
答案 0 :(得分:3)
如果你想使用jQuery函数.not
,你需要在jQuery对象上调用它(目前你正试图在字符串上调用它)。这是一个例子:
$('ul a span', '#menu').not('{Developers}').css
^--- changes here ---^
如果你的名字中有 选择 ,那么它是:not
,而不是.not
(reference),它需要成为选择器字符串的一部分。但是你在后面的问题中说过你尝试过:not
并且它没有用(我不确定你在哪里或如何尝试:not
)。
我认为该代码存在另一个问题,因为.not
和:not
都期望选择器(.not
也允许元素/ jQuery实例或函数)和选择器{{ 1}}无效。
从你的评论中看,除了异常以外,我只能猜测 else 正在改变元素的背景,因为引用的代码会失败(抛出异常,即除非您已将'{Developers}'
函数添加到not
),否则根本不会输入String.prototype
函数,更不用说$
部分了。
如果您的目标是为与ID css
但不的元素下的选择器ul a span
匹配的跨距背景着色,则该文本包含“{Developers” “,你需要使用menu
伪类(取自CSS3,但jQuery支持它):
:contains
如果您更喜欢将$("#menu ul a span:not(:contains('{Developers}'))").css(...
作为上下文参数传递的表单:
#menu
Live example ...但是jQuery会有效地处理它们。
答案 1 :(得分:1)
假设你正确粘贴了代码,你就错过了一个')'
if (!($.browser.msie && $.browser.version.substr(0, 1) == '5')){
$('ul a span', '#menu').not('{Developers}').css('color', 'rgb(210,210,210)').hover(
function(){ $(this).animate({color: 'rgb(255,255,255)'}, 500); },
function(){ $(this).animate({color: 'rgb(210,210,210)'}, 200); }
);
}
答案 2 :(得分:1)
我可以在你的代码中看到拼写错误。
if (!($.browser.msie && $.browser.version.substr(0, 1) == '5')){
$('ul a span', '#menu').not('{Developers}').css('color', 'rgb(210,210,210)').hover(
function(){ $(this).animate({color: 'rgb(255,255,255)'}, 500); },
function(){ $(this).animate({color: 'rgb(210,210,210)'}, 200); }
);
}
在您的代码中
$('ul a span', '#menu'.not('{Developers}')).css...
但它应该是
$('ul a span', '#menu').not('{Developers}').css...
你缺少一个括号,你也需要一个。
答案 3 :(得分:0)
... $('ul a span', '#menu').not(
....
我觉得缺少一个括号?或者它应该是选择器的一部分?