通常,我使用Modernizr进行常规功能检测,但它无法检测到浏览器选择器支持(即:nth-of-type()选择器)。使用jQuery检测浏览器的CSS选择器支持
有没有办法检测选择器支持浏览器与jQuery?
通常,我使用Modernizr进行常规功能检测,但它无法检测到浏览器选择器支持(即:nth-of-type()选择器)。使用jQuery检测浏览器的CSS选择器支持
有没有办法检测选择器支持浏览器与jQuery?
即使在不支持CSS中的选择器的浏览器中,选择带有jQuery选择器的元素也是可行的。
但是,您可以将样式应用于CSS3选择器,然后使用jQuery选择一个元素以确定是否应用了该样式。
例如,在CSS:
#myid > p {
display: none;
}
,然后在jQuery的:
if ($('#myid > p').css('display') != 'none') {
// blah
}
但是要小心,因为.css()
可能不会返回你所期望的。例如,如果您应用“红色”的颜色,则会返回rgb(255, 0, 0)
。
对不起,我知道这不像Modernizr那样完美,但我希望它可以帮助你。
您可以尝试与选择选择的东西,如果它返回“NULL”或者是浏览器不支持,或没有该类型
我的建议是使用你知道的东西的选择要素存在。
但jQuery的选择器引擎不同于普通的浏览器选择器引擎。它怎么可能?你能给个例子吗? – fatihturan 2010-07-19 13:46:42
不同?怎么会这样? – Hailwood 2010-07-19 16:36:47
如果我对,jQuery使用Sizzle选择器引擎来选择元素。如果我尝试选择这样的内容:$('ul#f00 li:nth-of-type(odd)'),它将在每个浏览器(甚至IE6)上返回对象。我对吗? – fatihturan 2010-07-21 08:00:35
谢谢你的解决方案。 – fatihturan 2011-05-15 08:12:20