たとえば、ドキュメントのスニペットがある場合:
<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
して検索することはできません(たとえば、のように見える場合があります)。また、HTMLを制御できず、jQueryやその他のJavaScriptライブラリを使用できません。<p>
"p"
"p > a > b"
また、内部もに一致"div > "
するため、セレクターの前に追加して適用するだけでは不十分です。outerDiv.parentNode
<p>
"div > p"
CSSセレクターを自分で解析しすぎずにこれを行うためのクリーンな方法はありますか?