javascript - 清除多个输入字段的内容?
问题描述
嗨,我正在使用按钮动态添加行,当我输入完信息后,我希望它可以清除内容。“添加口袋妖怪”按钮是我想要按下的按钮,它应该清除所有内容。
function addPokemon() {
var pokemonName = document.getElementById("pokemon-name-container");
pokemonName.innerHTML = document.getElementById("pokemon-names").value;
for (var i = 0; i < element.length; i++) {
if (element[i].value !== "undefined") {
pokemonArray.push(element[i].value);
}
}
console.log(pokemonArray);
for (var i = 0; i < pokemonArray.length; i++) {
document.getElementById("pokemon-container").innerHTML += "<li>" + pokemonArray[i] + "</li>";
}
document.getElementById("pokemon-name-container").value = "";
document.getElementById("move-name").value = "";
}
这是我正在使用的功能。^^
下面是我的 HTML vv
<div>
<table>
<tbody id="tbody">
<tr>
<td>
<div id="pokemon-name-container">
<p>Pokémon Name:</p>
<input type="text" id="pokemon-names" size="30">
</td>
</tr>
<tr>
<td>
<p class="moves">Moves:</p>
</td>
</tr>
<tr>
<td>
<input class="move-container" type="text" id="move-name" placeholder="Enter move here">
</td>
<td>
<input class="button-container" type="button" id="remove-btn" value="Remove Move" onclick="removeRow()">
</td>
</tr>
</tbody>
</table>
</div>
<div>
<input type="button" class="add-move-button" id="add-move-button" value="Add Move" onclick="addRow()">
</div>
<div>
<input type="button" class="add-pokemon-button" id="add-pokemon-button" value="Add Pokémon" onclick="addPokemon()">
</div>
解决方案
您可以将所有输入放入您创建的唯一类中,该类在具有唯一 ID 的父级下定义它们。然后在 javascript 的函数中使用下一段代码,const childs = document.querySelectorAll('#idParent.classChilds')
这个 querySelectorAll 有点像 getElementsById 但使用 CSS 的选择器,所以它更强大。querySelectorAll 会返回一个 NodeList,其中包含与 de DOM 和 CSS 查询匹配的所有元素。
然后你只需要使用函数式编程做类似的事情:
const childs = document.querySelectorAll('#idParent .classChilds')
childs.forEach(child=>{
child.value = ""
})
我不确定这段代码是否有效(我没有使用代码编辑器和浏览器来检查是否有错误),正如我所说,你可以做类似的事情
希望是有帮助的
仅供参考,尽量避免使用 getElementById 或 getElementsByClass 之类的选择器......尝试使用这个:
document.querySelector('CSS SELECTOR') // GIVES YOU THE FIRST MATCH OF THE CSS SELECTOR
document.querySelectorAll('CSS SELECTOR') // GIVES YOU A NODELIST WITH ALL MATCHES
推荐阅读
- android - 为什么斑马 InputScannerPlugin 停止对发送的广播做出反应?
- maven - 在 jenkinsfile 的 sh 命令中使用 ${variable}
- python - GeoPandas 和 OSMnx - 在地图上绘图
- bazel - 为什么 Bazel 不将构建工具使用的 JDK 版本作为缓存键的一部分进行哈希处理
- python - 即使不满足条件,np.where 也会评估“if-true”?
- java - 解决静态方法调用的 DeclaredType 泛型
- c# - 错误:“应用程序在未读取整个请求正文的情况下完成”Angular/C#
- node.js - 查询 GraphQL 以根据 id OR name 查找对象
- c# - Unity Spawned Object 不向前旋转
- javascript - 如何在 jquery load() 中重新加载 id 列表?