【发布时间】:2014-01-03 16:26:46
【问题描述】:
考虑这个 DOM:
<div id="div1">
<div class="no-select-inside">
<p>Don't select me</p>
</div>
<div>
<p>Select me</p>
<div><p>Select me too</p></div>
</div>
<div>
<p>Select me</p>
<div><p>Select me too</p></div>
</div>
<footer class="no-select-inside">
<p>Don't select me</p>
<div><p>Not me</p></div>
</footer>
<section>
<p>Select me</p>
<div><p>Select me too</p></div>
</section>
</div>
我想要一个 fast 和 reliable jquery(或裸 DOM)选择器来选择那些不在 'no-select-inside' 类中的 p 标签
一切都是动态的,但我可以为不可选择的 DOM 元素分配一个属性。
编辑
真正的测试用例不是类选择器(可能是复杂的属性选择器,...)
一切都是动态的,可能嵌套太深(100 到 DOM 树在 no-select-inside 下有 p 有一个 no-select-inside 父级,即使选择了这些元素也有所有答案)
我已经缓存了所有 no-select-inside(Backbone 的 $el 并且可以缓存在数组中以提高性能),但真正的问题是快速选择这些元素(chrome 中的 20 毫秒太慢了!)。
【问题讨论】:
标签: javascript jquery dom jquery-selectors