Javascript 追加childnode时,其抛出错误为“;财产';追加儿童';不存在于类型';诺德利斯托夫<;元素>'&引用;

Javascript 追加childnode时,其抛出错误为“;财产';追加儿童';不存在于类型';诺德利斯托夫<;元素>'&引用;,javascript,typescript,nodes,appendchild,Javascript,Typescript,Nodes,Appendchild,将子节点附加到li时,类型“NodeListOf”上不存在获取类似属性“appendChild”的错误 let li:NodeListOf=document.queryselectoral(“name li”); var newItem=document.createElement(“li”); var ListValue=document.createTextNode(“abcd”); var ListValue=document.createTextNode(“efgh”); var Lis

将子节点附加到li时,类型“NodeListOf”上不存在获取类似属性“appendChild”的错误

let li:NodeListOf=document.queryselectoral(“name li”);
var newItem=document.createElement(“li”);
var ListValue=document.createTextNode(“abcd”);
var ListValue=document.createTextNode(“efgh”);
var ListValue=document.createTextNode(“ijkl”);
newItem.appendChild(ListValue);
li.附加子项(列表项);

文档。querySelectorAll
是一个数组而不是元素,您应该迭代
li
变量,但我猜您想向现有列表中添加一个项,如果是这种情况,您应该将该项附加到列表容器

编辑:使用
document.querySelector
仅选择特定元素

此外,定义新的自定义html标记是一种不好的做法,尝试使用类来代替,因此对于这样的html:

<ul class="test">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
  • 项目1
  • 项目2
  • 项目3

li
是一个
NodeListOf
,它本身不是
元素
,因此它没有
appendChild
方法。您最可能想做的是处理列表中的一个元素:

li[0].appendChild(newNumberListItem);
let li: NodeListOf<Element> = document.querySelector("ul.test");

var newNumberListItem = document.createElement("li");
var numberListValue = document.createTextNode("java");
var numberListValue = document.createTextNode("ajax");
var numberListValue = document.createTextNode("javascript");

newNumberListItem.appendChild(numberListValue);
li.appendChild(newNumberListItem);
li[0].appendChild(newNumberListItem);