Uncaught TypeError: Failed to execute ‘appendChild’ on ‘Node’: parameter 1 is not of type ‘Node’.

在这里插入图片描述
(1)出现这种错误的原因主要是传入appendChild()方法的参数不是一个有效的元素节点,而是字符串;
(2)可以通过nodeType()方法来检验节点的类型

- nodeType == 1  表示的是元素节点(标签) 。记住:在这里,元素就是标签。
- nodeType == 2  表示是属性节点。
- nodeType == 3  是文本节点。
Console.log(节点.nodeType())

示例1:
在这里插入图片描述
方法返回的结果为1:有效元素,可以被添加进去;
示例2:
在这里插入图片描述
方法返回结果为undefined:无效元素,会报错;
如果我想加入一个有内容的select标签,有如下两种方法:
(1)调用createElement()方法创建一个有效的虚拟元素节点,再把要加入的有内容的标签通过innerHTML插入到虚拟节点中,代码如下:(我这里的td[2]是获取的自己建立的表元素)

let divSFYX=window.document.createElement("div")
divSFYX.innerHTML="<select><option value='有效'>有效</option><option value='无效'>无效</option></select>"
console.log(divSFYX.nodeType);
tds[2].appendChild(divSFYX)

(2)创建一个对象数组,将字符串添加到数组中,再用innerHTML插入到节点中

let arr=new Array;
let select="<select><option value='有效'>有效</option><option value='无效'>无效</option></select>";
arr.push(select);
window.document.getElementsByClassName("SFYX")[i].innerHTML=arr.join("");
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐