このコードを実行できます
str.parentNode.nextSibling.tagName
それに応じて名前を取得します。必要なのはこのnextSibling
後なnextSibling
ので、これを試しました
str.parentNode.childNodes[3].tagName
動かない?これに対する解決策はありますか?
このコードを実行できます
str.parentNode.nextSibling.tagName
それに応じて名前を取得します。必要なのはこのnextSibling
後なnextSibling
ので、これを試しました
str.parentNode.childNodes[3].tagName
動かない?これに対する解決策はありますか?
childNodes[3]
parentNode
は、 の2 番目の次の兄弟ではなく、の 4 番目の子を返します。
nextSibling
そのノードを取得するには、 2 回適用できます。
var tagName = str.parentNode.nextSibling.nextSibling.tagName;
要素は、 tagNamenextSibling
プロパティを持たないテキスト ノードであるか、まったく存在しない可能性があることに注意してください。この場合、そのプロパティにアクセスしようとするとエラーがスローされます。nextSibling
undefined
tagName
したがって、おそらく次のようなことをしたいと思うでしょう:
var nextSibling = getNextElementSibling(str.parentNode);
var tagName = nextSibling? nextSibling.tagName : ''; // or maybe undefined
if (tagName) {
// do stuff
} else {
// no element sibling was found
}
getNextElementSibling
関数は次のようなものです。
function getNextElementSibling(node) {
while (node && (node = node.nextSibling)) {
if (node.nodeType == 1) {
return node;
}
}
// return undefined
}