Вместо этого можно использовать querySelectorAll
и использовать строку выбора .parent > .content
, чтобы выбрать .content
s, которые прямые дочерние элементы из .parent
:
const contents = document.querySelectorAll('.parent > .content');
console.log(contents.length);
<div class="parent">
<div class="content">
<div class="content"></div>
</div>
<div class="content"></div>
</div>
Если ваш HTML имеет более одного родителя, и вы хотите выбрать только потомков .content
одного родителя, затем выберите этого родителя, позвоните querySelectorAll
на это (вместо документа) и используйте :scope > .content
:
const contents = first.querySelectorAll(':scope > .content');
console.log(contents.length);
<div class="parent" id="first">
<div class="content">
<div class="content"></div>
</div>
<div class="content"></div>
</div>
<div class="parent">
<div class="content">
<div class="content"></div>
</div>
<div class="content"></div>
</div>