Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从嵌套元素获取val()的选择器性能_Javascript_Jquery - Fatal编程技术网

Javascript 从嵌套元素获取val()的选择器性能

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">

使用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">
    <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;)。