例如有3个button
,
id 为b1
/b2
/b3
,都有class ="button"
。
假如想对这3个进行DOM操作(动态添加样式类),一开始的获取可以是:
一:分别进行三次var button? = document.getElementById()
,然后放到一个数组里(后面有循环调用);
二:使用querySelectorAll()
获得Nodelist对象,然后转换成数组;
三:使用document.getElementsByClassName(names)
;
我想知道哪一个运行起来会更快点,这要如何知道?
方法楼上各位提供了,但我对结果比较感兴趣,于是测试了一下:
测试结果:
test0: 0.022ms
test2: 0.041ms
test4: 0.209ms
test1: 0.021ms
test3: 0.0261ms
test5: 0.671ms
刷新多次后观察结果,排序上偶尔会不同,但平均水平和以上给出的结果差不多:
1.用jQuery方法选择器的效率明显较低;
2.document.getElementById()与document.querySelector()的效率基本没有差别,但前者效率稍高一点;
3.最让我意外的是:用class比用id选择器的效率稍高一些,不知这是为什么?但jquery的$(".classnae")选择器的效率永远是最低的)
自己用上面的代码测试一遍不就知道了……
使用 console API
假设要执行的语句为
xxx
;在代码中这样写
方法有两种:
第一种:利用console API
第二种:利用Date对象