[英]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")
它将获得最接近的祖先,而不是all the parents for the element
,这可能会消除额外的开销。
var id = $("select").closest(".lineItem-container").attr("id").substring(6);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.