javascript - 如何创建元素并将类和文本添加到 DOM?
问题描述
我很清楚之前有人问过这个问题,我检查了答案,但我无法弄清楚我的代码有什么问题。我正在尝试通过单击甚至将用户输入中的文本添加到列表中,所以我的问题是我在这里做错了什么?
HTML
<div class="item item2">
<h3 class="list-title">Title</h3>
<ul class="scroll-wrap">
<li class="list-items">Scope</li>
<li class="list-items">Design</li>
<li class="list-items">Function</li>
</ul>
<input type="text" name="Input" class="add-item"><input class="add-btn" type="submit" value="Add Item">
</div>
和 JS
let button = document.querySelectorAll('.add-btn');
let addItem = document.querySelectorAll('.add-item');
let list = document.querySelectorAll('.scroll-wrap');
button.addEventListener('click', function() {
let listItem = document.createElement('li');
listItem.classList.add('list-items');
listItem.appendChild(document.createTextNode(addItem.value));
list.appendChild(listItem);
});
解决方案
querySelectorAll()
返回节点列表而不是元素引用。你要querySelector()
let button = document.querySelector('.add-btn');
let addItem = document.querySelector('.add-item');
let list = document.querySelector('.scroll-wrap');
推荐阅读
- java - Vert.x 线程命名 - “vert.x-worker-thread-...”
- visual-studio - 在 VS 的 MSI 设置中强制文件随 Windows 自动启动
- c# - why I couldn't see the referenced dll module hosted by a process
- sql - Oracle - 按日期区分组
- java - how can i still get this problem after i mention the service in the manifest
- javascript - How do I use requirejs in the browser?
- r - Generate Absolute xpath of given webElement in RSelenium [R]
- bash - How to run commands after login to shell command of a container in a VM?
- java - 除非我使用 .join(),否则为什么同步方法不会被锁定?
- css - 适合在 Flexbox/Grid 中缩放的图像行?