Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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获取所有直接子对象_Javascript_Css Selectors_Children - Fatal编程技术网

Javascript获取所有直接子对象

Javascript获取所有直接子对象,javascript,css-selectors,children,Javascript,Css Selectors,Children,我需要得到一个元素的所有直接子元素。就在这里: <div class='1'> <div class='2'> <div class='3'></div> </div> <div class='2'></div> </div> 我需要两个类为“2”的div,使用类为“1”的div。纯JavaScript-没有库 (为了更清楚,在本例中它们是同一个类。根据我

我需要得到一个元素的所有直接子元素。就在这里:

<div class='1'>
    <div class='2'>
        <div class='3'></div>
    </div>
    <div class='2'></div>
</div>

我需要两个类为“2”的div,使用类为“1”的div。纯JavaScript-没有库

(为了更清楚,在本例中它们是同一个类。根据我的需要,它们具有不同的未知类。)

一个选项是使用和通用选择器,
*
,以选择任何类型的直接子元素:

document.querySelectorAll('.element > *');
或者,还有一个将返回所有直接子元素的:

document.querySelector('.element').children;

好像没法让它工作。。。我也不希望任务对CPU造成严重影响。因此,我的问题是-如果我使用
menuitem
aside
或其他标记,而不是类为“3”的
div
,这会是一个问题吗?该操作没有CPU密集型。实际上,这只是检查每个元素的父元素是否有
.element
类。@BoltClock虽然它确实是一个微观优化,但应谨慎使用*选择器。使用<代码> */COD>意味着在结束搜索之前需要考虑每个元素。在大多数情况下,您可能会侥幸逃脱,但例如,在动画循环中运行并不是一个好主意。@elliottregan-一般来说,您不会因为使用的CSS选择器而遇到明显的性能问题。所有现代浏览器都经过优化以高效地选择元素。如果遇到性能问题,罪魁祸首几乎总是选择器以外的操作。此外,这里是一个1k元素选择与通用选择器,然后操纵每秒钟。。。你可以轻松地为10k个元素运行此操作,而不会有任何问题…@elliottregan:是的,不是选择器本身太贵,而是当它出现在选择器末尾时,它会随着页面上元素的数量而扩展,通过使用它,你可能会做更多不必要的工作。