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:是的,不是选择器本身太贵,而是当它出现在选择器末尾时,它会随着页面上元素的数量而扩展,通过使用它,你可能会做更多不必要的工作。