Например, если у меня есть фрагмент документа:
<div> <!-- I have a reference to this: "outerDiv". -->
<p> <!-- This is the <p> I want to select. -->
<div>
<p> <!-- I don't want to select this <p>. --> </p>
</div>
</p>
</div>
(Это гипотетический документ. HTML-парсеры фактически не будут создавать DOM, который выглядит следующим образом.)
и ссылка на самый внешний элемент <div>
, Я бы хотел как-то использовать outerDiv.querySelectorAll('p')
для выбора только элементов <p>
, которые являются прямыми дочерними элементами внешнего <div>
.
Я не могу использовать outerDiv.childNodes
и искать элементы <p>
, потому что у меня фактически есть селектор, который намного длиннее "p"
(например, он может выглядеть как "p > a > b"
). Я также не могу контролировать HTML и не могу использовать jQuery или другие библиотеки JavaScript.
Также недостаточно добавить "div > "
к селектору и применить его от outerDiv.parentNode
, поскольку внутренний <p>
также соответствует "div > p"
.
Есть ли чистый способ сделать это, не разбирая CSS-селектор самостоятельно, слишком много?