gpt4 book ai didi

使用 appendchild 时,Javascript childNodes 找不到 div 的所有子节点

转载 作者:搜寻专家 更新时间:2023-11-01 05:26:54 25 4
gpt4 key购买 nike

好的,我希望有人能帮助我。我预先道歉,这可能会令人困惑。我提供了一个示例来帮助缓解混淆,因为先看后听更好。

我创建了一个包含一组或一组组的网页。每个组都有一个子组。简而言之,这个页面将允许我将包含子组的多个组组合到一个新组中。该页面将提供在将旧子组组合到新组之前重命名它们以避免混淆的机会。

当组被重命名时,它会检查以确保不存在具有该名称的组。如果有,它会将自己从自己的组中复制到该组中,然后删除原始组。如果该组尚不存在,它将创建该组,将其自身复制到其中,然后删除原始组。

子组也可以重命名,此时它们将移动到具有相同名称的组(如果存在),或者创建一个新组(如果不存在)。

页面有一个主分区。主 div 包含“新子组”div。在每一个里面是另一个包含“旧子组”div 的 div。在重命名组时,我使用循环遍历“新子组”div 的子节点以找到每个子节点。然后将它们复制到主 div 中的新 div。

问题的症结就在于此。如果我遍历一个 DIV 并将其中的所有 DIV 复制到一个新的或现有的 DIV 中,一切都很好。然后,当我尝试获取该 DIV 并将其所有 DIV 复制到另一个或新的 DIV 时,它总是会跳过其中一个移动的 DIV。

为简单起见,我复制了下面的整个工作代码。要重现问题,请单击名称 ewrewrwe 旁边图像应出现的位置,然后将其重命名为其他名称。一切都很好。现在以相同的方式单击该新组并将其命名为其他名称。你会看到它每次都跳过一个。

我已将页面链接到此处:http://vtbikenight.com/test.html

链接很干净,这是我的个人网站,用于我所属的本地摩托车组。

谢谢大家的帮助!!!如果我能澄清任何事情,请告诉我。

我知道代码现在不是最好的,它只是演示代码,我的目的是让概念发挥作用,然后将其全部简化。

最佳答案

您需要在删除节点后减少计数,否则您将跳过刚刚取代已删除节点的节点。

        for ( var count = 0; count < obj.childNodes.length; count++ )
{
if(obj.childNodes[count].tagName == 'DIV'){
//alert(obj.childNodes[count].tagName +" - "+obj.childNodes[count].id);
RenameOldSubGroup(obj.childNodes[count].id,NewNewGroupName)

count--; // Decrement count to account for node you removed
}
}

关于使用 appendchild 时,Javascript childNodes 找不到 div 的所有子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2655009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com