javascript - Javascript appendChild 不适用于 li 元素
问题描述
我的 JavaScript 代码工作到最后一个append
. 我检查了警报消息。显示除最后一个之外的所有警报。所以我认为问题出在最后一个append
. 有人可以帮忙吗?
var node = document.createElement("li");
var d0 = document.createElement("div");
var d1 = document.createElement("div");
var L1 = document.createElement("label");
d1.append(L1);
L1.innerHTML = "datah[key]";
var d2 = document.createElement("div");
var L2 = document.createElement("label");
d2.append(L2);
L2.innerHTML = "datah1[key]";
console.log("test1");
d0.append(d1);
d0.append(d2);
node.append(d0);
console.log("test2");
document.getElementById("speclist").appendChild(node);
// The following alert doesn't get printed
console.log("test3");
<div>
<ul id="speclist">
</ul>
</div>
解决方案
最后一个附加问题没有问题是你没有在任何html中包装“test3”。你想显示test3然后你必须用node(li)包装它。
var node = document.createElement("li");
var d0 = document.createElement("div");
var d1 = document.createElement("div");
var L1 = document.createElement("label");
d1.append(L1);
L1.innerHTML = "datah[key]";
var d2 = document.createElement("div");
var L2 = document.createElement("label");
d2.append(L2);
L2.innerHTML = "datah1[key]";
alert("test1");
d0.append(d1);
d0.append(d2);
node.append(d0);
alert("test2");
//document.getElementById("speclist").appendChild(node);
// The following alert doesn't get printed
alert("test3");
node.appendChild(document.createTextNode("test3"));
document.getElementById("speclist").appendChild(node);
<div>
<ul id="speclist">
</ul>
</div>
还有一件事,当我运行您的代码时,它向我显示了 3 个警报 test1、test2 和 test3。
推荐阅读
- mysql - SQL 使用 Where 子句更新左连接
- python - 如何在 DictReader 中使用 quotechar
- python - 在系列的切片上设置属性
- python-3.x - Opencv矩形被绘制在原始图像上(无法删除)
- ios - Swift iOS - 如何实现不同字体大小的多行SegmentedControl
- python - 撤消使用 Pandas 执行的更改
- regex - 大于 0 但小于 100 的十进制值的正则表达式
- android - 从变化的变量中获取最大值
- node.js - MEAN Stack:模块 .exports 不是函数
- openstack - Javaswift/JOSS 中的 StoredObjectListElement 与 openstack swift API 不匹配?