他の特定の要素の子孫でない要素を1つ以上選択しようとしています。私はdiv要素内ないすべての「I」の要素を、選択したい上記の例で他の特定の要素の外にある要素を選択する
<html>
<body>
<div>
<p>
<b>
<i> don't select me </i>
</b>
</p>
</div>
<div>
<i>don't select me either </i>
</div>
<i> select me </i>
<b>
<i> select me too </i>
</b>
</body>
</html>
。 他の方法では、( 'div i')を使うと簡単になりますが、これをnot()で使用することはできません。
div要素の外側にあるi要素をすべて選択するにはどうすればよいですか?機能 - jqLiteはない()がありません - 私はjQueryのを使用することはできませんが、jqLiteを使用することができ
nondiv_i = all_i.not(all_div.find("i"))
: は、多くの場合、のようなものと思われる、jQueryのを使用することを示唆しています。 jqLiteソリューションも大歓迎です! 反復と比較を繰り返さずにこれを行うことは可能ですか?
編集:明確にするために、私は自分のi-elementのdiv-ancestorを望んでいません。同等のXPathは次のようになります
:あなたの特定の場合のための
//i[not(ancestor::div)]
'document.querySelectorAll( 'ボディ::ない(DIV)I')
あなたは、インデックスによってそれらを得ることができます' – putvande
@ OPがうまくそれを受け入れるように、あなたのコメントを回答として追加してください。 – JeffC
この回答はうまくいかなかった。それはを返す私を選択しないでくださいと私もtooを選択してください。考えてみると良いです(ボディを選択し、divでない要素をすべて選択してからi要素を取得します)が、動作しません(これは私の問題が最初から出てくるところです)。私がこのプロジェクトの一部を後で残している間に、私はこの質問を断念していません。 :)まだ答えを探しています。 – Peter1807