gpt4 book ai didi

javascript - 帮我优化这个 jQuery :has selector

转载 作者:行者123 更新时间:2023-11-30 13:37:43 24 4
gpt4 key购买 nike

我正在使用 dynaTrace 在 Internet Explorer 中分析我的应用程序。

最昂贵的调用之一如下:

$("div.containerClass:has(div.containerHeader)")

我将选择器的范围限定如下,这提供了一点改进:

$("div.containerClass:has(div.containerHeader)", "#section-wrapper")

如何进一步提高性能?

注意:我不能更改 HTML 标记,只能更改 JavaScript。

我正在使用 jQuery 1.4.2。

更新这是示例 HTML...请注意,在我的实际应用程序中,HTML 是动态的,实际标记会有所不同:

<div id="section-wrapper">
<div class="somethingelse">
<div class="somethingelse2">
<div class="containerClass">
<div class="containerHeader">
<h2>content region 1</h2>
</div>
</div>

<div class="containerClass">
<div>
<h2>content region 2</h2>
</div>
</div>

<div class="containerClass">
<div class="containerHeader">
<h2>content region3 </h2>
</div>
</div>

<div class="containerClass">
<div class="containerHeader">
<h2>content region 4</h2>
</div>
</div>
</div>
</div>

最佳答案

您应该使用单个选择器,如下所示:

$("#section-wrapper div.containerClass:has(div.containerHeader)")

否则,您将启动多个 jQuery 对象来执行查找。您必须进行测试,但是根据您所针对的 DOM,这可能会更快(尤其是在 jQuery 1.4.3+ 中):

$("#section-wrapper div.containerHeader").closest("div.containerClass")

关于javascript - 帮我优化这个 jQuery :has selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com