我有一个清单,当项目被检查时,我将其推入一个输入字段。取消选中该项时,该项将从输入字段中删除。https://codepen.io/dragoncoderpanda/pen/abwmpgx
然而,代码也有重复。对于每个复选框,我必须创建一个单独的函数来推/弹出文本。
如何在代码中传递参数,以避免重复编写太多代码?
itemArray = [];
let inputField = document.querySelector('.inputField')
let itemOne = document.querySelector('#itemOne')
itemOne.addEventListener('click', alpha);
function alpha(){
if(itemOne.checked == true){
itemArray.push(itemOne.name);
inputField.placeholder = itemArray;
inputField.value = itemArray;
} else{
itemArray.pop(itemOne.name);
inputField.placeholder = itemArray;
inputField.value = itemArray;
}
}
let itemTwo = document.querySelector('#itemTwo')
itemTwo.addEventListener('click', beta);
function beta(){
if(itemTwo.checked == true){
itemArray.push(itemTwo.name);
inputField.placeholder = itemArray;
inputField.value = itemArray;
} else{
itemArray.pop(itemTwo.name);
inputField.placeholder = itemArray;
inputField.value = itemArray;
}
}
2条答案
按热度按时间iq0todco1#
您可以只在所有相关复选框上侦听更改事件,然后在
:checked
建立你的itemArray
每一次。inkz8wg92#
首先,分配一个
value
用于所有复选框。使用以下命令选择一组复选框,而不是选择单个图元class
加event listener. Then you can
推or
根据复选框的状态删除复选框的值。