繁体   English   中英

jQuery ie8 attr性能不佳

[英]jQuery ie8 attr poor performance

“我有一些类似于下面的html包含在一个循环中,其中父ID是动态生成的,

<t:loop>
    <div id="demoid-10132165498794631" class="lineItem-container">
        <div>
            <select/>
        </div>
    </div>
</t:loop>

我正在尝试获取包含类lineItem-container的父元素的id。

我正在使用以下脚本来获取id,

var id = $("select").parents(".lineItem-container").attr("id").substring(6);

html可能会被循环到1000次,这导致ie8的性能非常差。 我的假设是性能问题是由attr选择器引起的。

JS从IE8登录

Function    Count   Inclusive Time (ms) Inclusive Time %    Exclusive Time (ms) Exclusive Time %    Avg Time (ms)   Max Time (ms)   Min Time (ms)

attr    431,334 21,609.38   12.65   14,406.25   8.43    0.05    2,234.38    0
attr    431,382 20,265.63   11.86   12,203.13   7.14    0.05    31.25   0
ATTR    239,906 20,531.25   12.02   9,125.00    5.34    0.09    8,156.25    0
attr    241,475 11,531.25   6.75    7,312.50    4.28    0.05    31.25   0

有没有人对如何加快这一过程提出任何建议?

不要将attr选择器用于像id一样简单的东西。

[0].id替换.attr("id")

试试.closest()

它将获得最接近的祖先,而不是all the parents for the element ,这可能会消除额外的开销。

var id = $("select").closest(".lineItem-container").attr("id").substring(6);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM