"未捕获的层次结构请求错误:createTextNode之后的新行标记

"Uncaught HierarchyRequestError : new line tag after createTextNode

本文关键字:错误 createTextNode 之后 新行标 请求 层次结构 quot      更新时间:2023-09-26

这是我正在努力实现的代码:

var aform = document.createElement("form");
var model = document.createTextNode("xyz");
var newLine = document.createElement('br');
model.appendChild(newLine);
var status = document.createTextNode("abc");
aform.appendChild(model);
aform.appendChild(status);
$("#someDiv").append(aform);

当我尝试运行代码时,它一直给我错误

"未捕获的层次结构请求错误:无法在"节点"上执行"appendChild":此节点类型不支持此方法。"

有人能建议一下为什么它不起作用吗?我只想在创建文本节点xyz和abc之后再添加一行。

您可以使用jQuery完成整个操作,因为您无论如何都在使用它:

$("#someDiv").append("<form>xyz<br>abc</form>");
var model = document.createTextNode("xyz");
var newLine = document.createElement('br');
model.appendChild(newLine);

您不能这样做,因为您的父节点是TEXT节点,所以这种类型的节点不能有子节点。

var model = document.createTextNode("xyz");

与相同

var model.textContent = "xyz";

我建议你使用innerHTML方法,它的工作速度快几十倍,没有jQuery,例如:

document.getElementById("someDiv").innerHTML = "<form>xyz<br>abc</form>".

或者你的代码(固定):

var aform = document.createElement("form");
        var model = document.createTextNode("xyz");
        var newLine = document.createElement('br');
        var status = document.createTextNode("abc");
        aform.appendChild(model);
        aform.appendChild(newLine);
        aform.appendChild(status);
        $("#someDiv").append(aform);