我们可以运行此代码
str.parentNode.nextSibling.tagName
并相应地获取名称。我们需要的是nextSibling
之后的nextSibling
所以我们尝试了这个
str.parentNode.childNodes[3].tagName
不工作?任何解决方案?
答案 0 :(得分:2)
childNodes[3]
将返回parentNode
的第四个孩子,而非第二个下一个兄弟。
要获取该节点,您可以应用nextSibling
两次:
var tagName = str.parentNode.nextSibling.nextSibling.tagName;
答案 1 :(得分:1)
请注意,元素的nextSibling
可能是文本节点,它没有 tagName 属性,或者根本不存在,在这种情况下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
}