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
doors\u列表
元素
因此:您瞄准的元素不是按钮的同级元素,而是其父元素
使用。编写有效的HTML。您的HTML无效,这就是问题的原因 撇开一个问题不谈,
首先是不允许在
内部使用的
按钮的内容是:
- 起始div
- img
- 端部div
- img
- 端部div
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),它会返回什么?因为它看起来是最后一个,所以我想它是空的,不是吗?