我有一组数月的复选框,并且我还有一个包含每月单元格的表。单元格的“ data-val”属性与复选框的“ id”相同。我想向表单元格添加onClick,以便在单击单元格时,只要选中了表单元格,则应选中与单元格“ data-val”具有相同“ id”的复选框。>
到目前为止,我已经设法将onClick注册到表格单元格中。但是,当单击单个单元格而不是相应的复选框时,将选中所有复选框。我该怎么解决?
function MonthCalCheck() {
const checkboxMonthElement = document.querySelectorAll('.checkboxMonth');
var cells = document.querySelectorAll('#Month_Table td');
cells.forEach(f => f.addEventListener('click', event => {
for (var x = 0; x < checkboxMonthElement.length; x++) {
if (cells[x].getAttribute('data-val') == checkboxMonthElement[x].getAttribute('id')) {
checkboxMonthElement[x].checked = true;
}
}
}));
}
MonthCalCheck();
答案 0 :(得分:2)
您使用的是forEach
,而不是使用变量f
作为迭代中的当前元素,而是使用的cells[x]
实际上等于checkboxMonthElement[x]
比较它们的数据值时。
将cells[x]
替换为f
。