检查复选框是否被选中,returns addEventListener 不是函数
Checking if checkboxes are checked ornot, returns addEventListener is not a function
您好,我得到了以下代码片段,我在其中尝试根据复选框是否已选中来打印 console.log
。
var checkbox = document.querySelectorAll('.customer-club-widget__gender__categories .form__input-checkbox');
checkbox.addEventListener("change", function() {
var isChecked = checkbox.checked;
if(isChecked){ //checked
console.log('checked');
}else{ //unchecked
console.log('unchecked');
}
});
我不断收到以下错误:
Uncaught TypeError: checkbox.addEventListener is not a function
and a cant figure out why this is happening.
您收到错误消息是因为 querySelectorAll()
return 一个元素数组,而您正在尝试将事件附加到该数组,否则您应该遍历它以将更改事件附加到其中的每个元素,例如:
//Loop through the array elements and attach the event
for (var i = 0; i < checkbox.length; i++) {
checkbox[i].addEventListener("change", checkedOrNot);
}
//Define separate function
function checkedOrNot() {
var isChecked = this.checked;
if (isChecked) { //checked
console.log('checked');
} else { //unchecked
console.log('unchecked');
}
}
希望这有帮助。
var checkbox = document.querySelectorAll('.customer-club-widget__gender__categories .form__input-checkbox');
for (var i = 0; i < checkbox.length; i++) {
checkbox[i].addEventListener("change", checkedOrNot);
}
function checkedOrNot() {
var isChecked = this.checked;
if (isChecked) { //checked
console.log('checked');
} else { //unchecked
console.log('unchecked');
}
}
<div class="customer-club-widget__gender__categories">
<input type="checkbox" class="form__input-checkbox" /> A
<br>
<input type="checkbox" class="form__input-checkbox" /> B
<br>
<input type="checkbox" class="form__input-checkbox" /> C
<br>
<input type="checkbox" class="form__input-checkbox" /> D
</div>
您好,我得到了以下代码片段,我在其中尝试根据复选框是否已选中来打印 console.log
。
var checkbox = document.querySelectorAll('.customer-club-widget__gender__categories .form__input-checkbox');
checkbox.addEventListener("change", function() {
var isChecked = checkbox.checked;
if(isChecked){ //checked
console.log('checked');
}else{ //unchecked
console.log('unchecked');
}
});
我不断收到以下错误:
Uncaught TypeError:
checkbox.addEventListener is not a function
and a cant figure out why this is happening.
您收到错误消息是因为 querySelectorAll()
return 一个元素数组,而您正在尝试将事件附加到该数组,否则您应该遍历它以将更改事件附加到其中的每个元素,例如:
//Loop through the array elements and attach the event
for (var i = 0; i < checkbox.length; i++) {
checkbox[i].addEventListener("change", checkedOrNot);
}
//Define separate function
function checkedOrNot() {
var isChecked = this.checked;
if (isChecked) { //checked
console.log('checked');
} else { //unchecked
console.log('unchecked');
}
}
希望这有帮助。
var checkbox = document.querySelectorAll('.customer-club-widget__gender__categories .form__input-checkbox');
for (var i = 0; i < checkbox.length; i++) {
checkbox[i].addEventListener("change", checkedOrNot);
}
function checkedOrNot() {
var isChecked = this.checked;
if (isChecked) { //checked
console.log('checked');
} else { //unchecked
console.log('unchecked');
}
}
<div class="customer-club-widget__gender__categories">
<input type="checkbox" class="form__input-checkbox" /> A
<br>
<input type="checkbox" class="form__input-checkbox" /> B
<br>
<input type="checkbox" class="form__input-checkbox" /> C
<br>
<input type="checkbox" class="form__input-checkbox" /> D
</div>