Uncaught TypeError: Failed to execute ‘appendChild‘ on ‘Node‘: parameter 1 is not of type ‘Node‘.
js:报错:Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
·
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("");
更多推荐
已为社区贡献2条内容
所有评论(0)