我有一个带有 onclick 事件的纯 Javascript 脚本,该事件在决定做什么之前检查下一个兄弟的值。如果单击的元素是其容器中的最后一个元素(因为访问 nextSibling),这将导致错误。我需要首先检查单击的元素是否不是容器中的最后一个元素,但似乎无法找出方法。
注意:我不认为这是重复的。有很多关于检查元素是否是最后一个子元素的问题,但所有接受的答案——所有一般答案——都使用 JQuery。
原文由 Joe Hansen 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个带有 onclick 事件的纯 Javascript 脚本,该事件在决定做什么之前检查下一个兄弟的值。如果单击的元素是其容器中的最后一个元素(因为访问 nextSibling),这将导致错误。我需要首先检查单击的元素是否不是容器中的最后一个元素,但似乎无法找出方法。
注意:我不认为这是重复的。有很多关于检查元素是否是最后一个子元素的问题,但所有接受的答案——所有一般答案——都使用 JQuery。
原文由 Joe Hansen 发布,翻译遵循 CC BY-SA 4.0 许可协议
出于某种原因,没有一个答案对我有用,我总是最终看到一个 #text
节点而不是未定义或 null,所以我最终将我的元素与元素父元素的最后一个子元素进行比较:
element === element.parentNode.children[element.parentNode.children.length-1]
或者如果你想要它作为一个函数
function isLastChild(el) {
return (el === el.parentNode.children[el.parentNode.children.length-1])
}
//Useage
if(isLastChild(el)) {
//Element is the last child of its parent.
}
可能比其他答案更长,但绝对不会让您失望。
原文由 Art3mix 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
您可以在元素上使用 .nextSibling 属性,看看它是否返回为空(未定义等)。