将表格单元格链接到复选框Javascript

时间:2018-08-02 10:09:42

标签: javascript for-loop foreach onclick

我有一组数月的复选框,并且我还有一个包含每月单元格的表。单元格的“ 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();

1 个答案:

答案 0 :(得分:2)

您使用的是forEach,而不是使用变量f作为迭代中的当前元素,而是使用的cells[x]实际上等于checkboxMonthElement[x]比较它们的数据值时。

cells[x]替换为f