JQuery链接复选框和函数的使用"每个()

时间:2015-05-06 08:08:47

标签: javascript jquery checkbox

我在这里发帖是因为我无法找到任何解决方案。 我不是母语人士,所以我会尽力解释我的问题。

我称之为"复选框为母亲"。如果他们被检查,他们的儿子将被禁用。我想做一个"清洁"代码,这就是为什么我试图用户.each(),但它没有按我的意愿工作。 这是我的javascript代码:

<script type="text/javascript">
    $(function() {

        $("#check_prev").each(function() {
            this.click(enable_cb(i));
            i++;
        });


    });

    function enable_cb(id) {
        if (this.checked) {

            $("input.input_panne" + id).attr("disabled", true);
            $("input.input_panne" + id).attr("checked", false);
            $("span.check_panne" + id).css("color", "#D8D8D8");

        } else {
            $("input.input_name" + id).removeAttr("disabled");
            $("span.check_agent" + id).css("color", "black");

            $("input.input_panne" + id).removeAttr("disabled");
            $("span.check_panne" + id).css("color", "black");

        }
    }
</script>

我已经尝试了#34; .concat()&#34;但它不起作用。也是&#34;复选框的母亲&#34;命名如下:check_prev1,check_prev2等。儿子,像这样:input_panne1,input_panne2。

感谢您的帮助......将近2天的工作并没有解决方案......会杀了我自己

编辑:这是HTML CODE

<body>
    <input type="checkbox" class="mere" data-mere="1">
    <input type="checkbox" class="son son1">
    <input type="checkbox" class="son son1">
    <input type="checkbox" class="mere" data-mere="2">
    <input type="checkbox" class="son son2">
    <input type="checkbox" class="son son2">
    <input type="checkbox" class="mere" data-mere="3">
    <input type="checkbox" class="son son3">
    <input type="checkbox" class="son son3">
</body>

1 个答案:

答案 0 :(得分:0)

由于元素的id必须是唯一的,因此将check_prev之类的类分配给所有母版复选框

$(function () {
    $(".check_prev").click(enable_cb);
});

function enable_cb() {
    var id = this.id.replace('check_prev', '')
    if (this.checked) {
        $("input.input_panne" + id).prop("disabled", true);
        $("input.input_panne" + id).prop("checked", false);
        $("span.check_panne" + id).css("color", "#D8D8D8");

    } else {
        $("input.input_name" + id).prop("disabled", false);
        $("span.check_agent" + id).css("color", "black");

        $("input.input_panne" + id).prop("disabled", false);
        $("span.check_panne" + id).css("color", "black");

    }
}