Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 使用jquery遍历一系列元素的最佳方法是什么?_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery遍历一系列元素的最佳方法是什么?

Javascript 使用jquery遍历一系列元素的最佳方法是什么?,javascript,jquery,Javascript,Jquery,我有一套元素 <div id="lista"> <ul> <li class="seto">Element 1</li> <li class="seto">Element 1</li> <li class="seto">Element 1</li> </ul> </div> 还是这个 $(".seto").each(func

我有一套元素

<div id="lista">
    <ul>
      <li class="seto">Element 1</li>
      <li class="seto">Element 1</li>
      <li class="seto">Element 1</li>
    </ul>
</div>
还是这个

$(".seto").each(function(){ //something });

谢谢。

我认为性能不是问题

jquery应该反映代码的意图

根据您想要应用样式,我会选择类版本

如果您想对特定的业务对象进行一些后处理,我将使用ID版本


话虽如此,我认为您应该使用类版本,并确保业务对象具有要附加样式的正确类。包括jQuery函数。

这取决于您的情况

案例1: 例如,你的情况是这样的

<div id="lista">
        <li class="seto">Element 1</li>
        <li class="seto">Element 1</li>
        <li class="seto">Element 1</li>
        <ol class="seto">diff Element 1<ol>
 </div>

元素1
元素1
元素1
差动元件1
若你们想浏览所有“seto”包含类元素的列表


然后你选择第二种方法。或者您可以使用第一种方法

您可以在此处阅读有关选择器优化的内容:

美元(“#lista”)。儿童(“li”)将是最快的。
但是在您的情况下,性能并不重要,所以您可以使用您喜欢的任何东西。

这是一个意见问题,取决于您的情况,但我想说,第一个更好,因为它更具体,但这是一个非常重要的问题。如果您在文档的其他地方有类为
seto
的项目,那么您可能不想影响它们,或者当然:
$(“#lista.seto”)。每个(…)
,如果我只想处理特定列表中的
.seto
元素,我会这样做。仅供参考,这不是有效的HTML标记。现在,也许你甚至不需要一个each循环,这取决于你试图对useRe@A.Wolff做什么/method:你不能让
li
作为
div
的直接子对象。它必须是
ol
ul
的直接子项。是的,很抱歉我修复了它,这是ulI的内部版本。关于这篇文章的最新更新是
2015年3月11日
,但现在对于所有现代浏览器,jQuery在内部使用
文档。queryselectoral()
作为CSS选择器,例如,这句话似乎与此无关:
find()方法更快,因为第一个选择是在不经过Sizzle选择器引擎的情况下处理的–只有ID的选择是使用document.getElementById()处理的,该方法非常快,因为它是浏览器的本机方法。
但无论如何,阅读效果肯定不错。编辑:
$(“#lista>li”)
应该比
$(“#lista”)稍微快一点。我想孩子('li')
↑↑↑ 但这是为纳秒优化而斗争,所以这并不重要,显然所有的优化对现代浏览器都没有意义,但我们总是有一个旧的IE:)。然而,我认为在OP的情况下,性能根本不是一个问题。大约美元(“#lista>li”)与美元(“#lista”)。儿童('li')-我相信他们会在Sizzle引擎中做同样的工作,但不确定。
<div id="lista">
        <li class="seto">Element 1</li>
        <li class="seto">Element 1</li>
        <li class="seto">Element 1</li>
        <ol class="seto">diff Element 1<ol>
 </div>