javascript - 尝试创建 ul 元素,然后使用 JavaScript 使用 ul 父级创建 li 子元素
问题描述
我是 JavaScript 新手,所以我想先学习这些概念,这就是为什么我要附上两个代码示例,我想知道为什么第二个示例不起作用。
问题是: 当我尝试使用示例 2附加li元素时,它不起作用,但为什么呢?
样品 1
<body>
<h1>This is my List </h1>
<button onclick="j()">click me</button>
<script>
function j()
{
var ul = document.createElement('ul');
ul.innerHTML = 'List:'
document.body.appendChild(ul);
let u = document.createElement('li');
u.innerHTML = 'person';
ul.appendChild(u);
}
</script>
</body>
样品 2
<body>
<h1>This is my List </h1>
<button onclick="j()">click me</button>
<script>
function j()
{
var ul = document.createElement('ul');
ul.innerHTML = 'List:'
document.body.appendChild(ul);
let u = document.createElement('li');
u.innerHTML = 'person';
document.getElementsByTagName("ul").appendChild(u); //ul here is the one created within the function.
}
</script>
</body>
解决方案
document.getElementsByTagName()
返回一个集合。
所以你的代码应该假设你的文档中document.getElementsByTagName("ul")[0].appendChild(u)
只有这个。<ul>
您可以document.querySelector("ul")
改为使用来查找特定元素。
旁注:ul.innerHTML = 'List:'
是无效的 HTML,<ul>
的 HTML 应该只包含<li>
元素。
你可以这样做,ul.innerHTML = '<li>List:</li>'
或者你应该考虑使用另一个元素<h1>
来保持标题。