通过javascript删除父级的子级
我在NodeJS中制作了一个聊天应用程序,在其中动态加载每个用户的消息。当用户的名字被点击时,他们的消息将同时被检索。但我想做的是,当我检索一个用户的消息并尝试检索第二个或第三个用户的消息时,我想删除已经检索到的消息。这是父div元素的子元素,它的类名为通过javascript删除父级的子级,javascript,Javascript,我在NodeJS中制作了一个聊天应用程序,在其中动态加载每个用户的消息。当用户的名字被点击时,他们的消息将同时被检索。但我想做的是,当我检索一个用户的消息并尝试检索第二个或第三个用户的消息时,我想删除已经检索到的消息。这是父div元素的子元素,它的类名为(“indChatBody”),每个消息都是这个类的子元素,我只是通过javascript动态生成这些子元素,这就是为什么我想用javascript删除这些子元素 我尝试的代码是: var chatBody=document.getElemen
(“indChatBody”)
,每个消息都是这个类的子元素,我只是通过javascript动态生成这些子元素,这就是为什么我想用javascript删除这些子元素
我尝试的代码是:
var chatBody=document.getElementsByClassName(“indChatBody”)[0]
var ch=document.getElementsByClassName(“mess”);
var len=chatBody.children.length;
对于(var i=0;i您正在从0循环到数组的原始长度。但每次循环时,您都将从该数组中删除一个元素。在某个点上,您超出了索引
您可以组合while循环element.hasChildNodes()并删除第一个子元素,直到不再有子元素,而不是使用数组并在其长度上存在潜在问题:
var chatBody=document.getElementsByClassName(“indChatBody”)[0]
while(chatBody.hasChildNodes()){
chatBody.removeChild(chatBody.firstChild);
}
信息#1
信息#2
信息#3
您正在从0循环到数组的原始长度。但每次循环时,您都会从此数组中删除一个元素。在某些情况下,您的索引不足
您可以组合while循环element.hasChildNodes()并删除第一个子元素,直到不再有子元素,而不是使用数组并在其长度上存在潜在问题:
var chatBody=document.getElementsByClassName(“indChatBody”)[0]
while(chatBody.hasChildNodes()){
chatBody.removeChild(chatBody.firstChild);
}
信息#1
信息#2
信息#3
ch不是数组而是列表,这意味着当您删除一个元素时,它也会从列表中删除。
因此,您可以通过删除来更改列表的长度。
你不需要长度
while(ch[0]){
chatBody.removeChild(ch[0]);
}
ch不是数组而是列表,这意味着当您删除一个元素时,它也会从列表中删除。
因此,您可以通过删除来更改列表的长度。
你不需要长度
while(ch[0]){
chatBody.removeChild(ch[0]);
}
另一个经典解决方案的可能重复是使用反向循环。另一个经典解决方案是使用反向循环。