Javascript 选中时获取复选框数据ID->;将VAL推送到阵列
当复选框变为选中状态时,我尝试使用选中的复选框Javascript 选中时获取复选框数据ID->;将VAL推送到阵列,javascript,for-loop,ecmascript-6,Javascript,For Loop,Ecmascript 6,当复选框变为选中状态时,我尝试使用选中的复选框数据id值不断更新数组(为了触发,我在父元素上添加了一个单击事件侦听器,以重新检查所有状态)。我目前有下面的代码,这在某种程度上是可行的,但出于某些原因,会将重复的值推到数组中 function getCur(event) { let chkst = document.querySelector('.parent'); if (chkst) { chkst.addEventListener(&
数据id
值不断更新数组(为了触发,我在父元素上添加了一个单击事件侦听器,以重新检查所有状态)。我目前有下面的代码,这在某种程度上是可行的,但出于某些原因,会将重复的值
推到数组中
function getCur(event) {
let chkst = document.querySelector('.parent');
if (chkst) {
chkst.addEventListener("click", checkWtc);
} else {
getCur();
}
}
function checkWtc(event) {
let chkstats = document.querySelectorAll('input.mychex[type=checkbox]:checked');
if (chkstats) {
for (let i = 0; i < chkstats.length; i++) {
chIds.push(chkstats[i].getAttribute("data-id"));
console.log(chIds);
alert(chIds);
};
} else {
checkWtc();
}
}
函数getCur(事件){
让chkst=document.querySelector('.parent');
如果(chkst){
chkst.addEventListener(“单击”,选中WTC);
}否则{
getCur();
}
}
函数检查WTC(事件){
让chkstats=document.querySelectorAll('input.mychex[type=checkbox]:checked');
如果(chkstats){
for(设i=0;i数据id
中获得一致的重复id,然后将新id更新到阵列中:
我认为应该这样做(向父级添加一个侦听器)
//包含已检查id的数组
检查常量=[];
//在父级上添加eventlistener侦听器(侦听更改事件)
document.querySelector('.parent').addEventListener('change',e=>{
//获取复选框id
const id=e.target.id;
//如果您需要它作为数据id,只需将上面的更改为
//const id=e.target.dataset.id;
//如果选中目标,则将id添加到数组中
如果(e.target.checked)选中,则推送(id);
//如果不是,请将其删除
否则检查。拼接(检查。indexOf(id),1);
//这只是显示选中id的
log.innerHTML=JSON.stringify(选中)
})
福
酒吧
巴兹
由于您没有提供html,我添加了一些
(函数addDataIdListeners(){
const els=Array.prototype.slice.call(document.querySelectorAll('[dataid]');
els.forEach(函数(el){el.addEventListener('change',checkWtc);});
})();
函数检查WTC(事件){
const chkstats=Array.prototype.slice.call(document.querySelectorAll(“[data id]:checked”);
设arr=chkstats.map(函数(c){返回c.getAttribute('data-id');});
console.log(arr);//如果需要,在此处返回arr或进一步操作它
}