这里重要的部分是,对于简单的选择器,并且您的选择器很简单,jquery 使用 *MatchesSelector
或者document.querySelectorAll
如果它可用并且它显然依赖于浏览器。因此,唯一知道的方法是在您将要使用的所有浏览器中对其进行分析。
来自 jquery 源:
....
matches = docElem.webkitMatchesSelector ||
docElem.mozMatchesSelector ||
docElem.oMatchesSelector ||
docElem.msMatchesSelector,
....
jQuery.extend({
find: function( selector, context, results, seed ) {
...
if ( seed ) {
while ( (elem = seed[i++]) ) {
if ( jQuery.find.matchesSelector(elem, selector) ) {
results.push( elem );
}
}
} else {
jQuery.merge( results, context.querySelectorAll(selector) );
}
return results;
}
....
})
...
jQuery.extend( jQuery.find, {
matches: function( expr, elements ) {
return jQuery.find( expr, null, null, elements );
},
matchesSelector: function( elem, expr ) {
return matches.call( elem, expr );
},
attr: function( elem, name ) {
return elem.getAttribute( name );
}
});