如何动态单击标签以仅检查整行

How to dynamically click a label to check entire row only?

本文关键字:检查 标签 单击 何动态 动态      更新时间:2023-09-26

行数是动态的,所以我无法固定行的名称,这是小提琴:http://jsfiddle.net/1vp29wxq/1/

$('.NameOfSensor').on("click", function () {
    var tr = $(this).parents('tr:first');
    var thisRow = tr.find(".rowMode");
    var checkChecked = $("input[class='rowMode']:checkbox:checked");
    var checkBoxes = $("input[class='rowMode']:checkbox");
    if (checkChecked.length < checkBoxes.length)
    {
        checkBoxes.prop("checked", true);
    }
    else {
        checkBoxes.prop("checked", false);
    }
});

我从中得到的是所有复选框都被选中,但我只想要单击它的行中的复选框。另外,无论我尝试什么,我似乎都无法合并我创建的 2 个变量(tr 和 thisRow),我可以得到一些帮助吗?此外,复选框所在的列数始终为 6(有时我只是隐藏它们)。

将代码更改为以下内容:

$('.NameOfSensor').on("click", function () {
        var tr = $(this).closest('tr');
        var checkChecked = $(tr).find("input[class='rowMode']:checkbox:checked");
        var checkBoxes = $(tr).find("input[class='rowMode']:checkbox");
        if (checkChecked.length < checkBoxes.length)
        {
            checkBoxes.prop("checked", true);
        }
        else {
            checkBoxes.prop("checked", false);
        }
    });

您的选择器错误并获得了所有行。

在单击的行中搜索复选框:

var tr = $(this).closest('tr');   // fast alternative to `.parents('xxx:first')`
var checkChecked = $("input[class='rowMode']:checkbox:checked", tr),
    checkBoxes   = $("input[class='rowMode']:checkbox", tr);

演示:http://jsfiddle.net/1vp29wxq/2/