2017-02-24 60 views
0

我只是想知道哪一个更适合于以下$(*[attr])$([attr])。为什么?

因为两者都是一样的。

$('[onclick]').each(function(i,elem){ 
 
    console.log(elem.onclick); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div onclick="asd()"></div> 
 
<div onclick="def()"></div> 
 
<div id="dv1"></div> 
 
<div id="dv2"></div>

$('*[onclick]').each(function(i,elem){ 
 
    console.log(elem.onclick); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div onclick="asd()"></div> 
 
<div onclick="def()"></div> 
 
<div id="dv1"></div> 
 
<div id="dv2"></div>

而且还何谈浏览器的支持。

道歉,如果我问复制一个。

+6

我一定会喜欢'$( '[点击]')''作为*'没有任何意义在这里,因为目标是选择所有元素与表示属性 – Satpal

+0

@Satpal的任何性能或浏览器支持它们之间的区别? – Sankar

+0

更好地在jspref创建一个测试用例 – Satpal

回答

1

我觉得两者在行为层面都是一样的。

正如@satpal在评论中所言。

我试过jsPref,它说$('*[onclick]')是最快的。

enter image description here

感谢@satpal

+1

虽然是真的,但性能差异看起来可以忽略不计。 – evolutionxbox

+0

@RolandStarke我需要0.0004521秒,如果你愿意,你可以验证 – Sankar