Javascript 如何删除元素父级的下一个div?

Javascript 如何删除元素父级的下一个div?,javascript,html,Javascript,Html,功能是(事件,是){ event.stopPropagation(); yesicon.closest('button').nextSibling.remove();//为什么这不起作用??? yesicon.closest('button').remove();//这工作正常 } 厨房 --这是我要删除的一个-- 1号门的信息 您忘记打开图标前的div </div> <img src="Iconos/yes.png" onclick="yes(event,this);"

功能是(事件,是){
event.stopPropagation();
yesicon.closest('button').nextSibling.remove();//为什么这不起作用???
yesicon.closest('button').remove();//这工作正常
}

厨房

--这是我要删除的一个-- 1号门的信息


您忘记打开图标前的div

</div>
 <img src="Iconos/yes.png" onclick="yes(event,this);" alt="Yes" class="yes_icon">
</div>

您忘记打开图标前的div

</div>
 <img src="Iconos/yes.png" onclick="yes(event,this);" alt="Yes" class="yes_icon">
</div>

您的HTML无效,这就是问题的原因

撇开一个问题不谈,
首先是不允许在
内部使用的

按钮的内容是:

  • 起始div
  • img
  • 端部div
  • img
  • 端部div
由于没有打开的div可供第二个end标记关闭,因此错误恢复隐式关闭按钮,然后div end标记关闭
doors\u列表
元素

因此:您瞄准的元素不是按钮的同级元素,而是其父元素


使用。编写有效的HTML。

您的HTML无效,这就是问题的原因

撇开一个问题不谈,
首先是不允许在
内部使用的

按钮的内容是:

  • 起始div
  • img
  • 端部div
  • img
  • 端部div
由于没有打开的div可供第二个end标记关闭,因此错误恢复隐式关闭按钮,然后div end标记关闭
doors\u列表
元素

因此:您瞄准的元素不是按钮的同级元素,而是其父元素


使用。编写有效的HTML。

您希望使用
nextElementSibling
,因为正如其名称所示,它将成为下一个同级元素
nextSibling
将是后面的任何节点,在您的情况下,将是一个文本节点:元素之间的空白字符

功能是(事件,是){
event.stopPropagation();
yesicon.closest('button').nextElementSibling.remove();
}

厨房

--这是我要删除的一个-- 1号门的信息


您希望使用
nextElementSibling
,因为正如其名称所示,它将成为下一个同级元素
nextSibling
将是后面的任何节点,在您的情况下,将是一个文本节点:元素之间的空白字符

功能是(事件,是){
event.stopPropagation();
yesicon.closest('button').nextElementSibling.remove();
}

厨房

--这是我要删除的一个-- 1号门的信息


作为旁注,在
按钮
内不能有
div
,这是HTML规范不允许的。你是什么意思?它似乎工作得很好它工作得很好,是的,因为浏览器是为了尝试修复这些错误而构建的,但是如果你检查HTML规范(你应该这样做),你会发现它是不正确的。顺便说一句,你不能在
按钮内有
div
,这是HTML规范不允许的。你是什么意思?它似乎工作得很好它工作得很好,是的,因为浏览器是用来尝试修复这些错误的,但是如果你检查HTML规范(你应该这样做),你会发现它是不正确的。对不起,这是我复制代码时犯的错误。Node.nextSibling只读属性返回紧跟在其父节点的childNodes列表中指定节点之后的节点,如果指定节点是该列表中的最后一个节点,则返回null。如果您使用console.log(yesicon.closest('button').nextSibling),它会返回什么?因为它看起来是最后一个,所以我想它是null,不是吗?抱歉,这是我在复制代码时犯的错误。Node.nextSibling只读属性会返回紧跟在其父节点的childNodes列表中指定节点之后的节点,如果指定的节点是该列表中的最后一个节点,则返回null。如果您使用console.log(yesicon.nestest('button').nextSibling),它会返回什么?因为它看起来是最后一个,所以我想它是空的,不是吗?