javascript – 在元素列表中,将编号的索引放在ids中或使用索引选择器?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在元素列表中,将编号的索引放在ids中或使用索引选择器?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1372字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 在元素列表中,将编号的索引放在ids中或使用索引选择器?](/upload/InfoBanner/zyjiaocheng/722/3ed669571cae4ba4872a0b7030cca4ae.jpg)
在创建有序的元素列表时,我可以考虑通过索引访问一个元素的三种合理方法:
给它一个唯一的id,最后带一个数字并使用字符串操作:
<ol>
<li id="item-0"></li>
<li id="item-1"></li>
<li id="item-2"></li>
</ol>
...
for(var i = 0; i < 3; i++) {
$('#item-' + i).doWhatever();
}
给他们相同的类并使用eq选择器:
<ol>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
</ol>
...
for(var i = 0; i < 3; i++) {
$('.item').eq(i).doWhatever();
}
或者给他们相同的类并使用第n个子选择器:
<ol>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
</ol>
...
for(var i = 1; i <= 3; i++) {
$('.item:nth-child(' + i + ')').doWhatever();
}
各有哪些优缺点?还有其他更好的方法吗?
解决方法:
我在你的性能测试中添加了第四个测试用例:http://jsperf.com/item1-vs-item-eq-1/2
按顺序考虑您的要点:
>速度它很容易成为最快的方法
>字符串操作无
>索引从0开始
>样式您可以根据父样式设置样式,也可以选择将其他类添加到列表项本身
>可移植性可以通过getElementById和childNodes轻松实现
我认为,要考虑的主要问题是,当您在列表中进行迭代时,所有方法都涉及重复查询DOM.如果您只访问单个元素,那不是什么大问题,但是如果您要在整个列表中工作,那么只进行一次查询就会在性能方面产生很大的影响.
编辑出于好奇,我updated my case again根本不使用jQuery来查找列表,而只是使用我上面提到的准系统DOM API.
即使Sandor在指出我的愚蠢错误后做出的改变,也会产生明显的性能影响.考虑到这一点,我会说它主要归结为您的特定用例,以及您如何权衡速度与定位列表项目的多功能性.
内容总结
以上是互联网集市为您收集整理的javascript – 在元素列表中,将编号的索引放在ids中或使用索引选择器?全部内容,希望文章能够帮你解决javascript – 在元素列表中,将编号的索引放在ids中或使用索引选择器?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。