javascript - jQuery的$('#block + ul')和$('#block').next('ul')这两种写法哪种更好

查看:105
本文介绍了javascript - jQuery的$('#block + ul')和$('#block').next('ul')这两种写法哪种更好的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

主要从性能方面考虑,哪种写法更好?

解决方案

建议了解一下JQ的源码,另外锋利的JQUERY上面写的很好。
对于JQ的选择器实现方式:ID选择器使用的是原生的getElementById,是最快的,TagName选择器使用的是getElementsByTagName,ClassName选择器需要遍历所有的DOM元素。最慢的就是属性选择器、伪类选择器。
对于楼主所提的两种情况,可以用代码自己试一下。


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
      <div id="a"></div><p></p>
    </body>
    <script>
        var start1=+new Date();
          for(i=0;i<10000;i++){
               $("#a+p");
        }
        var start2=+new Date();
        console.log(start2-start1);
              for(i=0;i<10000;i++){
               $("#a").next();
        }
        var start3=+new Date();
        console.log(start3-start2);
    </script>
    </html>




测试结果是使用 $("#a").next() 更快。

这篇关于javascript - jQuery的$(&#039;#block + ul&#039;)和$(&#039;#block&#039;).next(&#039;ul&#039;)这两种写法哪种更好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆