1

有没有办法检查一个 CSS 选择器(获得document.styleSheets[666].rules[1984].selectorText)是否匹配一个特定的元素?

我要求一个跨浏览器的纯 javascript 解决方案,但如果只是在其中完成,我会考虑使用 jQuery。

4

3 回答 3

3

对于现代浏览器,有matchesSelector. 对于不太现代的浏览器,您可以使用querySelectorAll遍历 DOM

不要使用 jQuery。嘶嘶声就足够了。

Sizzle.matchesSelector(element, selector)

https://github.com/jquery/sizzle/wiki/Sizzle-Documentation

于 2012-09-18T06:31:51.393 回答
1

搜索特定的 CSS 规则

下面的示例在样式表中搜索“a:hover”规则,如果找到,则返回对它的引用:

var mysheet=document.styleSheets[0]
var myrules=mysheet.cssRules? mysheet.cssRules: mysheet.rules
for (i=0; i<myrules.length; i++){
if(myrules[i].selectorText.toLowerCase()=="a:hover"){ //find "a:hover" rule
targetrule=myrules[i]
break;
}
}

参考:http ://www.javascriptkit.com/dhtmltutors/externalcss3.shtml

于 2012-09-18T06:34:36.397 回答
-1

在 jQuery 中非常简单:

$(element).is(cssSelector);
于 2012-09-18T06:30:01.643 回答