Javascript 从嵌套元素获取val()的选择器性能
使用jQuery或JavaScript编写此jQuery选择器是否有更好、更高性能的方法。我主要关注的是选择器速度。榜样是一个加号Javascript 从嵌套元素获取val()的选择器性能,javascript,jquery,Javascript,Jquery,使用jQuery或JavaScript编写此jQuery选择器是否有更好、更高性能的方法。我主要关注的是选择器速度。榜样是一个加号 $('#formEdit div input.t:visible').val(); <div id="formEdit"> <div> <input class="t" type="text"> <input style="display:none;" class="t" type="text">
$('#formEdit div input.t:visible').val();
<div id="formEdit">
<div>
<input class="t" type="text">
<input style="display:none;" class="t" type="text">
<input style="display:none;" class="t" type="text">
</div>
</div>
$('#formEdit div input.t:visible').val();
您是否有其他形式的input.t类
如果不只是使用
$("#formEdit .t:visible").val();
这里有一个jsperf供您使用:
链接:
签入ff和chrome,我的速度更快
你的整个页面上还有其他的.t类吗?你还有其他形式的输入.t类吗 如果不只是使用
$("#formEdit .t:visible").val();
这里有一个jsperf供您使用:
链接:
签入ff和chrome,我的速度更快
你的整个页面上还有其他的.t类吗?根据我的测试,还有一些更有趣的结果。为了方便起见,我加入了原始测试和@腐蚀测试。最快的一个使用纯JS
var form=document.getElementById('formEdit');
var ts=form.getElementsByClassName('t');
var值;
对于(变量i=0;i
根据我的测试得出了一些更有趣的结果。为了方便起见,我加入了原始测试和@腐蚀测试。最快的一个使用纯JS
var form=document.getElementById('formEdit');
var ts=form.getElementsByClassName('t');
var值;
对于(变量i=0;i
我认为没有jquery会更快,有了jquery会更容易,但没有多大区别。我认为没有jquery会更快,有了jquery会更容易,但没有多大区别。嗯,为什么在我身上看起来更快?可能是因为我用的是chrome?实际上你的更快。我正在做更多的测试。在IE8中,原始代码是最快的,而在其他浏览器中,这一个更快。我想他是说我的测试在他那里更快also@corroded,为什么在选择器中指定#formEdit不更快。我认为这会将搜索范围缩小到仅#formEdit,而不是在整个DOM中搜索t类。嗯,为什么我的搜索速度更快?可能是因为我用的是chrome?实际上你的更快。我正在做更多的测试。在IE8中,原始代码是最快的,而在其他浏览器中,这一个更快。我想他是说我的测试在他那里更快also@corroded,为什么在选择器中指定#formEdit不更快。我假设这将把搜索范围缩小到仅#formEdit,而不是在整个DOM中搜索类t。getElementsByClassName()
在IE5到IE8中不受支持。是的,您可以加入替换实现。这是怎么回事。性能提高97%确实令人印象深刻。但是跨浏览器支持很重要。+1对于普通js。我正要试一下,但太懒了,没法去翻东西。我有一种预感,平原会得到它,因为它不需要jquery的框架calls@Pinkie-添加了另一个跨浏览器impl的测试getElementsByClassName
。在这种情况下,97%的速度慢并不等于97%的速度快,而是大约2998%
faster;)getElementsByClassName()
在IE5到IE8中不受支持。是的,您可以加入替换实现。这是怎么回事。性能提高97%确实令人印象深刻。但是跨浏览器支持很重要。+1对于普通js。我正要试一下,但太懒了,没法去翻东西。我有一种预感,平原会得到它,因为它不需要jquery的框架calls@Pinkie-添加了另一个跨浏览器impl的测试getElementsByClassName
。在这种情况下,97%的速度慢并不等于97%的速度快,而是大约2998%
faster;)。