从我的理解,添加.first()或:首先到一个查询不会停止DOM搜索第一次匹配后。它只是告诉jQuery从匹配的集合中获取第一个元素。
如果是真的,那么在第一场比赛后有没有办法停止DOM搜索?例如,如果我知道这个查询的结果将永远是一个单一的元素,那么jQuery如何被告知不要浪费时间进一步搜索?
解决方法
据我所知,目前没有办法在jQuery中做到这一点。你可以做的最好的是$(selector).first(),其中selector是一个标准的CSS选择器,不包括任何Sizzle特定的选择器(所以不要使用:first)。在这种情况下,jQuery在现代浏览器中使用快速的DOM querySelectorAll方法。
您可以使用构建为仅选择第一个匹配的DOM querySelector方法手动获取优化:
$.getFirst= function(selector) { if ('querySelector' in document) return $(document.querySelector(selector)); else return $(selector).first(); }
但是,通过这样做,您将保存的金额远远小于通过确保querySelectorAll可以使用来保存的金额。