javascript - createElement() + appendChild() -- DOM 方法
问题描述
我正在尝试在“div”中创建一个“a”元素,并在该“a”元素中添加一个“img”图像,该图像已经存在于“div”元素中。但是,我确实怀疑,因为以下代码不起作用。
document.querySelectorAll(".card").forEach(function(div){
div.appendChild(document.createElement("a"))
div.querySelector("a").appendChild(div.querySelector(".image"))
// OUPUT
// <div class="card">
// <a>
// <img class="image" alt="image-1" id="image-1">
// </a>
// </div>
// NOT WORK
div.appendChild(document.createElement("a").appendChild(div.querySelector(".image")))
// OUTPUT
// <div class="card">
// <img class="image" alt="image-1" id="image-1">
// </div>
})
解决方案
这是@CBroe 在他的第一条评论中的建议(使用多行):
document.querySelectorAll(".card").forEach(function(div){
const a = document.createElement("a");
a.appendChild(div.querySelector(".image"));
div.appendChild(a);
})
我担心这段代码会将.image
查询移动到每个 .card a
标签中。单个 DOM 对象只能有一个父对象,并且每个对象appendChild(div.querySelector(".image"))
都会相应地更改父对象。
推荐阅读
- reactjs - 单击redux按钮时,页面不会重新渲染?
- angular - 不想在主页中动态生成模块
- samtools - 使用 samtools 从 FASTA 文件的反向链中提取用户指定的序列
- reactjs - 在 React 中捕获后端返回的错误
- shell - bash 脚本中的表达式
- java - 在java中创建二叉搜索树。但输出为空
- python-2.7 - python paho-mqtt 发布 NULL 值
- c# - 给定另一个对象的类型,通过反射构造一个泛型类型
- javascript - 为什么我在 JavaScript 中的 BigDecimal 计算不起作用?
- apache - 为什么我无法从全新安装中登录到状态页面 tomcat 或 tomcat 中的管理器应用程序页面?