javascript - Document.createElement ("br") 无法多次调用 appendChild

标签 javascript

HTML

var x = document.createElement("p");
var br1 = document.createElement('br');
var br2 = document.createElement('br');
var t5 = document.createTextNode("CSE");
var t6 = document.createTextNode("EEE");
x.appendChild(t5);
x.appendChild(br1);
x.appendChild(t6);
x.appendChild(br2);

document.getElementById("new").appendChild(x);

输出应该是这样的

CSE

EEE 

但现在输出是CSEEEE

最佳答案

此处的问题与您创建的 br 元素有关。它是独一无二的。所以一开始当你将它附加到它在 DOM 中的位置时,它位于 t5 和 t6 元素之间。但是,当您第二次附加 br 元素时,它会将其放置在 DOM 中的不同位置,这就是为什么您会看到 CSEEEE 的结果后跟仅 1 个 br 元素。

您应该省略最后一个,或者克隆 br 元素。

var x = document.createElement("p");
var br = document.createElement('br');
var t5=document.createTextNode("CSE");
var t6=document.createTextNode("EEE");
x.appendChild(t5);
x.appendChild(br);
x.appendChild(t6);
x.appendChild(br.cloneNode());

document.getElementById("new").appendChild(x);
<div id="new">

关于javascript - Document.createElement ("br") 无法多次调用 appendChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844917/

相关文章:

javascript - Electron:将选项卡拖到另一个打开的窗口中

Javascript - window.getComputedStyle 返回 "auto"作为元素顶部和左侧属性

javascript - 单击时将嵌套数组/对象值显示到单独的元素中

javascript - 通过 jquery setTimeout 更改 css 背景图像属性

javascript - 强制 JSON.stringify() 发出 NaN/Infinity 或这样做的 JS JSON 库

javascript - html页面打开时如何隐藏表格

javascript - 变量未更新

javascript - 如何在 Qt Creator 中捕获 QWebEngineView 中的 javascript 错误?

javascript - 调用 javascript 构造函数方法

javascript - 如何防止单个对象上有多个事件监听器?