如何在没有 JQuery 的情况下检查元素是否是最后一个子元素

新手上路,请多包涵

我有一个带有 onclick 事件的纯 Javascript 脚本,该事件在决定做什么之前检查下一个兄弟的值。如果单击的元素是其容器中的最后一个元素(因为访问 nextSibling),这将导致错误。我需要首先检查单击的元素是否不是容器中的最后一个元素,但似乎无法找出方法。

注意:我不认为这是重复的。有很多关于检查元素是否是最后一个子元素的问题,但所有接受的答案——所有一般答案——都使用 JQuery。

原文由 Joe Hansen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 291
2 个回答

您可以在元素上使用 .nextSibling 属性,看看它是否返回为空(未定义等)。

原文由 El Guapo 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题