あなたは木を歩いてTreeWalker
を使用することができます。あなたが望むすべての兄弟を取得する場合は、あなたの場合は、
const first = document.getElementById('1');
const walker = document.createTreeWalker(first, NodeFilter.SHOW_ELEMENT);
let next;
while (next = walker.nextSibling()) {
console.log("Got next sibling", next);
}
、これはやり過ぎかもしれないが、それは歩くのより複雑なタイプを行う能力を提供します。
document.evaluate
を使用すると、XPathという言語に基づいてノードを見つけることもできます。この場合、これはあなたを介して歩くことができるイテレータを返します
const xPathResult = document.evaluate('following-sibling::p', first,
null, XPathResult.ANY_TYPE, null);
次のようになります。
while (next = xPathResult.iterateNext()) {
console.log("Got next sibling", next);
}
XPathができるための要素を選択するためのあなたの条件は、より複雑である場合、これは有用である可能性事実上何でも表す。
もちろん、要素を取得する別の方法はquerySelectorAll
です。ただし、兄弟を選択する方法はありません。親から始める必要があります:
first.parentNode.querySelectorAll('*')
当然、それはあなたに直接子供だけでなく、すべての子孫を与えるでしょう。 2番目以降の兄弟を取得するには:
document.querySelectorAll('#1 > p:not(:first-child)')
DOM API( 'children')を見ましたか? – SLaks
'getElementById'は' document'でのみ定義されています。しかし、 'getElementsByClassName'、' querySelector'、 'querySelectorAll'はどんな要素でも動くので、あなたが望むことをすることができます。 –