javascript - 为什么在函数之外创建节点时只有最后一个附加有效?
问题描述
let items = document.querySelector('.items'); // class of ul tag
let $li = document.createElement("li");
function add(item) {
$li.textContent = item;
items.append($li);
}
add('soup');
add('shampoo');
如果在函数中使用 createElement 创建节点,则正常反映。但是,我很好奇为什么像现在这样在函数之外创建 li 节点时只添加 append 的最后一个元素的详细原因。
解决方案
您应该每次在函数内创建 li 节点。否则它将引用旧节点并仅更新该节点的 innerHTML。
let items = document.querySelector('.items'); // class of ul tag
function add(item) {
let $li = document.createElement("li");
$li.textContent = item;
items.append($li);
}
add('soup');
add('shampoo');
推荐阅读
- javascript - 从使用js-grid创建的tr中获取id,属性路径每次都会改变
- haxe - Haxe 语言中 EnumTools 的编译问题
- terraform - 如何在不应用更改的情况下更新 Terraform 状态
- typescript - Vue.js、Typescript 和 VeeValidate 打字
- r - 如何在 r 中绘制最小值、最大值和平均值
- hibernate - 为什么我有 org.postgresql.util.PSQLException:错误:遇到无效的字节序标志值?
- excel - VBA宏后excel没有响应
- android - 将项目动态添加到recyclerview
- javascript - 修改数组的值
- excel - Excel - 带通配符的高级过滤器