javascript - Javascript For循环一次附加相同的元素
问题描述
这是为了理解JS Loop的逻辑。在下面的代码中,我希望<li>
元素将在<ul>
标签内附加 3 次。所以我应该在<li>
标签内获得 3 个<ul>
标签。据我了解,循环内的任何操作都将根据条件起作用。根据我应该<li>
在这里得到3个空白标签。但我只得到 1。任何人都可以解释我的方法有什么问题以及我应该如何编写它。提前致谢!
let ul = document.querySelector("ul");
let li = document.createElement("li");
for (i = 0; i <=3; i++) {
ul.appendChild(li);
}
解决方案
每次都需要创建一个新元素。如果您多次附加相同的元素,它将在 DOM 中移动它,但不会克隆它。
一个简单的解决方案是使用cloneNode:
let node = document.createTextNode("")
for (i = 0; i <3; i++)
document.body.appendChild( node.cloneNode() )
笔记:
克隆节点会复制其所有属性及其值,包括内在(内联)侦听器。它不会复制使用添加的事件侦听器
推荐阅读
- laravel-5 - Eloquent:如何与 Where 分组
- php - 我的代码看不到“警告:为 foreach() 提供的参数无效”的错误
- javascript - 总结输入类型数组并在输出中显示
- java - Firebase DatabaseException 无法将 java.lang.Long 类型的值转换为字符串
- c# - 生物识别指纹正在提供其他人的信息
- r - Rvest 抓取从 html_text() 返回的网页内容
- python - 将两个字符串方法合二为一
- node.js - 数据处理完成后Nodejs响应API请求
- android - 在另一个居中的文本视图下方有一个文本视图?
- hadoop - 在 Windows 上的 hive / hadoop 上选择 count(*) 失败