好像选择器":link"
不支持jQuery的filter()
或is()
函数。例如,如果我在页面上评估$(":link")
,它会返回多个链接。如果我评估$(":link").filter(":link")
或$(":link").is(":link")
,则会引发错误。错误消息是“语法错误,无法识别的表达式:链接”。
这是设计吗? filter()
和is()
不支持相同的CSS选择器是jQuery一般吗?是否有关于差异的文档?
好像选择器":link"
不支持jQuery的filter()
或is()
函数。例如,如果我在页面上评估$(":link")
,它会返回多个链接。如果我评估$(":link").filter(":link")
或$(":link").is(":link")
,则会引发错误。错误消息是“语法错误,无法识别的表达式:链接”。
这是设计吗? filter()
和is()
不支持相同的CSS选择器是jQuery一般吗?是否有关于差异的文档?
Patrick评论说,jQuery在某些情况下默认存在于其所在的浏览器内置querySelector or querySelectorAll中。因此,:link
似乎可以在某些浏览器上使用,但我不会建议使用它,因为它似乎会产生奇妙的奇怪结果。
<a href="www.foo.com">Hello</a>
alert($("a").is("a")); // do it this way
// changes the anchor's CSS, but does not return the length
alert($(":link").css('background','yellow').length);
你的第三个测试实际上并没有失败(无论在Safari还是Firefox中)。第二次测试崩溃,所以第三次警报从不发生。如果您删除了第二个测试,以便第三个测试可以运行,则Safari显示长度为1,而FF显示为3.并且CSS通过'.css()'正确应用于链接。很奇怪。 http://jsfiddle.net/xWPw7/3/ – user113716 2010-09-10 18:14:17
...我知道它是什么。在某些情况下,jQuery在内存中默认存在于'querySelector'或'querySelectorAll'中的browswer。显然':链接'支持。 http://jsfiddle.net/xWPw7/4/ – user113716 2010-09-10 18:21:02
@帕特里克 - 不错。这确实很奇怪。 – karim79 2010-09-10 18:21:38
你能告诉在文档中提到了':link'选择?因为我找不到它......(至少在这里http://api.jquery.com/category/selectors/) – Tomalak 2010-09-10 17:40:56
我也找不到它。它支持$(“a:link”),但不支持.filter()。 – 2010-09-11 23:34:40