在现代浏览器,jQuery的利用了document.querySelectorAll()
时,使用有效的CSS选择器来提高性能。 它回落到嘶嘶声,如果浏览器不支持选择或document.querySelectorAll()
方法。
不过,我想调试的自定义选择时总是使用灒,而不是本机实现的。 也就是说,我试图想出的实现:nth-last-child()
对CSS3选择一个不受jQuery的支持 。 由于这个选择器原生的现代浏览器的支持,它的工作原理是在链接的问题进行说明。 正是这种行为与调试我的自定义选择,虽然干扰,所以我想,以避免它。
一个廉价的破解我可以用是非标准下降jQuery选择扩展 ,从而“无效”时,选择这么说。 例如,假设每li:nth-last-child(2)
是可见的 ,我可以简单地丢弃在,把这个:
$('li:nth-last-child(2)').css('color', 'red');
这个:
$('li:nth-last-child(2):visible').css('color', 'red');
这将导致它总是由灒进行评估。 除此之外,这要求我做这可能是也可能不是真正的我的页面元素的假设。 我真的不喜欢这样。 更何况,我不喜欢使用非标准选择一般,除非绝对必要的。
有没有办法跳过本地document.querySelectorAll()
在支持它,并迫使jQuery的使用灒,而不是评估一个选择的浏览器的方法,优选地不采用使用非标准的选择吗? 有可能的,这需要调用另一个方法,而不是$()
但它不是选择更好的破解IMO。