Rue*_*eta 4 javascript iteration jquery
今天我非常喜欢使用Work和jQ.我得到了一个早上,但我无法解决它:(.我的工作在这里:
<div class="container">
<p class="test">a</p>
<div>
<p class="test">a</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在正常情况下,我可以使用jQ与每个功能for选择所有<p class="test">a</p>EX:
$(".test").each(function() {
$(this).text('a');
});
Run Code Online (Sandbox Code Playgroud)
但是我听到每个人都在谈论这个问题,for函数比each函数获得更少的时间.现在我想使用for而不是each..但我不知道在这种情况下如何编写代码jQ.
有人可以帮帮我!谢谢!
我不担心它,除非你迭代数百个.
for 循环通常用于正常DOM(也就是没有jQuery)遍历,如...
var elements = document.getElementById('something').getElementsByTagName('a');
var elementsLength = elements.length;
for (var i = 0; i < elementsLength; i++) {
elements[i].style.color = 'red';
}
Run Code Online (Sandbox Code Playgroud)
缓存elementsLength是一个好主意,因此不会每次迭代计算.感谢CMS在评论中提出这一建议.
如果你想用jQuery做这个,那就适应你的jQuery对象.
elements用你的jQuery集合替换变量,比如$('#something a').我想你可能需要重新包装对象,如果你需要用它做更多jQuery的东西.
需要注意的一点是,在jQuery选择结果上使用序数访问器将返回本机DomElement.如果你想对它们使用jQuery方法,你必须重新包装它们:
var testElements = $('.test');
for (var i = 0; i < testElements.length; i++) {
// Using $() to re-wrap the element.
$(testElements[i]).text('a');
}
Run Code Online (Sandbox Code Playgroud)
我是其他人所说的第二个.除非你处理许多元素,否则这是不成熟的优化.重新包装元素以使用.text()方法甚至可能使它恢复无益.
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |