将子节点附加到 li 时,在let li: NodeListOf<Element> = document.querySelectorAll("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.appendChild(ListItem);
答案 0 :(得分:1)
document.querySelectorAll
是一个数组,而不是一个元素,你应该迭代你的li
变量,但我猜你想要一个项目添加到现有列表中,如果是这样的话您应该将该项附加到列表容器<ul>...</ul>
编辑:使用document.querySelector
仅选择特定元素
另外,定义新的自定义html标签是不好的做法,尝试使用类,所以对于像这样的html:
<ul class="test">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
使用它:
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);
提示:如果您使用的是ES6,请避免使用var
并使用const
表示范围内不会更改的值,let
表示变量值
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);
<ul class="test">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
答案 1 :(得分:0)
li
是NodeListOf<Element>
,它本身不是Element
,因此它没有appendChild
方法。您最想要做的就是在列表中找到一个元素:
li[0].appendChild(newNumberListItem);