Javascript 从选中的复选框获取多个值
我想知道是否有办法获得选中复选框的值,然后在DeleteObject函数中使用filter函数中的值Javascript 从选中的复选框获取多个值,javascript,Javascript,我想知道是否有办法获得选中复选框的值,然后在DeleteObject函数中使用filter函数中的值 <div style="text-align:center" class="list"> <small>Walls:</small><input id="deleteCheckbox" type="checkbox" value="Wall"> <small>Doors:</small><input id="d
<div style="text-align:center" class="list">
<small>Walls:</small><input id="deleteCheckbox" type="checkbox" value="Wall">
<small>Doors:</small><input id="deleteCheckbox" type="checkbox" value="Door">
<small>Traps:</small><input id="deleteCheckbox" type="checkbox" value="SlowTrap"><br>
<small>Mines:</small><input id="deleteCheckbox" type="checkbox" value="GoldMine">
</div>
函数getItemsToDelete{
//获取所有选定元素的节点列表,
//将其转换为数组并返回
//值的数组。
返回数组.from
document.queryselectoral
'输入[名称=删除复选框]:选中'
.map item=>item.value;
}
console.loggetItemsToDelete;
墙
门
陷阱
矿山
如评论中所述,id应该是唯一的。要获取选中复选框的值,请将更改事件添加到带有类型复选框的输入中,然后使用选中复选框获取输入 document.queryselectoral'input[type=checkbox]' .forEachinput=>{ input.addEventListener'change',函数{ const values=[…document.querySelectorAll'input:checked'].mapinput=>input.value; console.logvalues; }; }; 墙壁: 门: 陷阱: 矿山:
为每个复选框添加唯一的名称或ID,并将其分配给侦听器,以便在JS代码中或直接在HTML中单击事件。然后在JS中,使用document.getElementById.value引用复选框值。在一个文档中有多个具有相同ID的元素是无效的HTML。考虑修复同一ID的第一个多个元素无效。您应该改用name属性。cblist=getElementsByName'box-shared-name';一旦您将id=更改为name=,将使您能够循环使用元素。@randomsour尝试为代码添加一些解释。仅仅回答这个问题对任何人都没有帮助。@MaheerAli-是的,我正在输入解释,突然投了反对票。“我不像你们这些人跑得那么快,”他说。我只是想传达你的答案,当你发布时应该有解释。这是一个很好的解决方案+1。
function DeleteObject() {
var b = Game.currentGame.ui.buildings;
Object.keys(b).filter(function(e) {
return CheckBoxValuesHere == b[e].type;
}).forEach(function(i) {
Game.currentGame.network.sendRpc({
name: "DeleteObject",
uid: b[i].uid
})
})
}