向浏览器添加HTML5查询选择器不支持它

Moh*_*sen 3 javascript jquery html5 cross-browser

我使用的是HTML5 API选择又名querySelector所有的时间.这些选择器非常易于使用和轻松.如果你不熟悉这个API,它与jQuery选择器API非常相似,它们会获得一个CSS选择器字符串并选择正确的元素.例如,这些选择器的工作方式相同:

jQuery('#div') == document.querySelectorAll('#div')

jQuery('.myClass a') == document.querySelectorAll('.myClass a');
Run Code Online (Sandbox Code Playgroud)

浏览器对此API的支持非常好.IE8支持它们.只有两个不支持此API的浏览器是IE7和IE6.我正在寻找将此功能添加到IE7和IE6的解决方案.对我来说,querySelectorAllquerySelector足够的,但如果有一种方法来实现更多的功能,那就太棒了!

我开始研究jQuery代码,他们之前做过,所以它是一个很好的地方,看看他们如何创建选择器API,但我不明白代码.任何的想法?

Jos*_*ber 9

您可以简单地使用jQuery 使用的原始Sizzle引擎(由jQuery的作者John Resig编写).

这是Sizzle自己的描述:

纯JavaScript CSS选择器引擎,可轻松放入主机库.


如果你想确保你不使用Sizzleif querySelectorAll本机支持(即使Sizzle总是querySelectorAll在可用时使用),请使用:

if ( ! document.querySelectorAll ) document.querySelectorAll = Sizzle;
Run Code Online (Sandbox Code Playgroud)