Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:remove lastChild每秒仅工作一次按钮单击_Javascript_Html_Dom_Removechild - Fatal编程技术网

Javascript JS:remove lastChild每秒仅工作一次按钮单击

Javascript JS:remove lastChild每秒仅工作一次按钮单击,javascript,html,dom,removechild,Javascript,Html,Dom,Removechild,我使用此代码删除列表中的最后一项,但仅在第二、第四、第六。。。每秒钟单击一次按钮,项目就会被删除,但每次单击都会显示消息。我该怎么做才能在每次单击时删除元素 document.getElementsByTagName('input')[0]。onclick=function(){ "严格使用",; var list=document.getElementById('list'),item=list.lastChild; 列表.删除child(项目); 窗口。警报(“删除”); }; 清单项目

我使用此代码删除
列表中的最后一项,但仅在第二、第四、第六。。。每秒钟单击一次按钮,项目就会被删除,但每次单击都会显示消息。我该怎么做才能在每次单击时删除元素

document.getElementsByTagName('input')[0]。onclick=function(){
"严格使用",;
var list=document.getElementById('list'),item=list.lastChild;
列表.删除child(项目);
窗口。警报(“删除”);
};
  • 清单项目1
  • 清单项目2
  • 清单项目3
  • 列表项目4
  • 清单项目5

这是因为
.lastChild
返回所有节点,包括
    中存在的空文本节点。改为使用
    .lastElementChild
  • 节点为目标

    此属性与lastElementChild的区别在于 lastChild将最后一个子节点作为元素节点(文本节点)返回 或注释节点(取决于最后一个节点),而 lastElementChild将最后一个子节点作为元素节点返回 (忽略文本和注释节点)

    有关更多信息,请参阅和

    document.getElementsByTagName('input')[0]。onclick=function(){
    var list=document.getElementById('list'),item=list.lastElementChild;
    列表.删除child(项目);
    };
    
    • 清单项目1
    • 清单项目2
    • 清单项目3
    • 列表项目4
    • 清单项目5
    更改:

    item = list.lastChild;
    


    好的,它现在可以工作了,我认为文本节点是元素节点的子节点,所以删除元素节点也会删除文本节点。@danielr1996,它是这样做的,但是您正在删除<代码>文本节点< /代码>而不是<代码>元素节点< /代码>使用<代码> ListelEngEngs< /C> >删除<代码>元素节点< /代码>,它也删除了<代码>文本节点< /代码> @ Daielr1996。这是奇怪的,在我的代码< > UL> 中有我认为的“幻象”文本节点。签出以查看注销到的空文本节点console@danielr1996我在答案中添加了一些可能有用的额外细节
    item = list.lastElementChild;