关于学习使用添加节点时遇到的问题及解决

       

        本人在学习了可以通过Node.appendChild和Node.insertBefore来添加节点后,跟着学习视频试着做一个表格,是根据数组变量的长度来确定表格的行数,视频给出的代码是这样的

 一开始我是先自己写一遍代码,我的是这样的

         我将创建节点写在了循环外面,因为我理解的是只要我创建好了这个节点后,我可以通过添加节点的方式来添加好多个该节点。但我的代码最终效果是表格只出现了一个行,应该是三行的。

        后来通过在MDN中查询资料才了解到:如果将插入的节点已经存在于当前文档的文档树中,那么 只会将它从原先的位置移动到新的位置

        这意味着,一个节点不可能同时出现在文档的不同位置。所以,如果某个节点已经拥有父节点,在被传递给此方法后,它首先会被移除,再入到新的位置。若要保留已在文档中的节点,可以先使用 Node.cloneNode() 方法来为它创建一个副本,再将副本附加到目标父节点下。请注意,用 制作的副本不会自动保持同步。

        所以我最初的代码只会有一个行,而如果在循环里创建节点,那么这样每次使用这个节点,其都与上一个节点不是一个节点,从而实现表格多个行的效果。

        参考资料传送门:https://developer.mozilla.org/zh-CN/docs/Web/API/Node/appendChild

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值