Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery根据水平方向上tr的类名选中td中的所有复选框_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery根据水平方向上tr的类名选中td中的所有复选框

Javascript JQuery根据水平方向上tr的类名选中td中的所有复选框,javascript,jquery,html,Javascript,Jquery,Html,这是我的示例代码。附上一张图片。我需要的格式 $table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ var allCbs=currentCB.closest'tr'.nextUntil'tr.groupHead'.find'[type=checkbox]'.prop'checked',已选中; }否则{ var allCbs

这是我的示例代码。附上一张图片。我需要的格式

$table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ var allCbs=currentCB.closest'tr'.nextUntil'tr.groupHead'.find'[type=checkbox]'.prop'checked',已选中; }否则{ var allCbs=currentCB.closest'tr'.prevAlltr.groupHead:first.nextUntil'tr.groupHead'.andSelf.find'[type=checkbox]; var allSlaves=allCbs.not.groupHeadCheck; var master=allCbs.filter.groupHeadCheck; var检查; 如果!我检查过了{ allChecked=false; }否则{ allChecked=allSlaves.filter:checked.length==allSlaves.length; } master.propchecked,allChecked; } }; $.groupHead.next.find[type=checkbox].change; .groupHead td{背景色:CCC;} 1. 2. 3.
只需简化几个代码字符串

$table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ var allCbs=currentCB.最近的'tr'。查找'[type=checkbox]'。属性'checked',已检查; }否则{ var allCbs=currentCB.closest'tr'。查找“[type=checkbox]”; var allSlaves=allCbs.not.groupHeadCheck; var master=allCbs.filter.groupHeadCheck; var检查; 如果!我检查过了{ allChecked=false; }否则{ allChecked=allSlaves.filter:checked.length==allSlaves.length; } master.propchecked,allChecked; } }; $.groupHead.next.find[type=checkbox].change; .groupHead td{背景色:CCC;} 1. 2. 3.
只需简化几个代码字符串

$table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ var allCbs=currentCB.最近的'tr'。查找'[type=checkbox]'。属性'checked',已检查; }否则{ var allCbs=currentCB.closest'tr'。查找“[type=checkbox]”; var allSlaves=allCbs.not.groupHeadCheck; var master=allCbs.filter.groupHeadCheck; var检查; 如果!我检查过了{ allChecked=false; }否则{ allChecked=allSlaves.filter:checked.length==allSlaves.length; } master.propchecked,allChecked; } }; $.groupHead.next.find[type=checkbox].change; .groupHead td{背景色:CCC;} 1. 2. 3. 检查这个

$table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var pt=$this.parentstr; var isChecked=此项已检查; pt.findinput[type=checkbox].propchecked,isChecked; }; $.groupHead.next.find[type=checkbox].change; .groupHead td{背景色:CCC;} 1. 2. 3. 检查这个

$table tbody.onchange,输入[type=checkbox],函数e{ var currentCB=$this; var pt=$this.parentstr; var isChecked=此项已检查; pt.findinput[type=checkbox].prop 检查,检查; }; $.groupHead.next.find[type=checkbox].change; .groupHead td{背景色:CCC;} 1. 2. 3.
我已经做了你想做的

它还会在页面加载时自动选中复选框。如果选中了所有其他复选框,则会选中第一个复选框

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta charset="UTF-8">
</head>
<body>

    <table>
        <tbody>
            <tr>
                <th>
                    1. <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="1" />
                </td>
                <td>
                    <input type="checkbox" id="2" />
                </td>
                <td>
                    <input type="checkbox" id="3" />
                </td>
            </tr>
            <tr>
                <th>
                    2. <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="4" />
                </td>
            </tr>
            <tr>
                <th>
                   3.  <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="6" checked="checked" />
                </td>
                <td>
                    <input type="checkbox" id="7" checked="checked"/>
                </td>
            </tr>        
        </tbody>
    </table>



    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    $(document).on("change", "input[type=checkbox]", function (e) { 
        var currentCB = $(this);
        var isChecked = this.checked;
        if (currentCB.is(".groupHeadCheck")) {
             currentCB.parents('tr').find('[type="checkbox"]').prop('checked', isChecked);
        } 

        $(document).find('tr').each(function(){
           var total_chk_in_row = jQuery(this).find('[type="checkbox"]').length;
           var total_checked_chk = jQuery(this).find('td > [type="checkbox"]:checked').length;

           if((total_chk_in_row - 1) == total_checked_chk){
                jQuery(this).find('.groupHeadCheck').prop('checked',true);
           }

        });
    });

     $(document).find('tr').each(function(){
           var total_chk_in_row = jQuery(this).find('[type="checkbox"]').length;
           var total_checked_chk = jQuery(this).find('td > [type="checkbox"]:checked').length;

           if((total_chk_in_row - 1) == total_checked_chk){
                jQuery(this).find('.groupHeadCheck').prop('checked',true);
           }

     });

    $(".groupHead").next().find("[type=checkbox]").change();
</script>

</body>
</html>

我已经做了你想做的

它还会在页面加载时自动选中复选框。如果选中了所有其他复选框,则会选中第一个复选框

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta charset="UTF-8">
</head>
<body>

    <table>
        <tbody>
            <tr>
                <th>
                    1. <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="1" />
                </td>
                <td>
                    <input type="checkbox" id="2" />
                </td>
                <td>
                    <input type="checkbox" id="3" />
                </td>
            </tr>
            <tr>
                <th>
                    2. <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="4" />
                </td>
            </tr>
            <tr>
                <th>
                   3.  <input type="checkbox" class="groupHeadCheck" />
                </th>
                <td>
                    <input type="checkbox" id="6" checked="checked" />
                </td>
                <td>
                    <input type="checkbox" id="7" checked="checked"/>
                </td>
            </tr>        
        </tbody>
    </table>



    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    $(document).on("change", "input[type=checkbox]", function (e) { 
        var currentCB = $(this);
        var isChecked = this.checked;
        if (currentCB.is(".groupHeadCheck")) {
             currentCB.parents('tr').find('[type="checkbox"]').prop('checked', isChecked);
        } 

        $(document).find('tr').each(function(){
           var total_chk_in_row = jQuery(this).find('[type="checkbox"]').length;
           var total_checked_chk = jQuery(this).find('td > [type="checkbox"]:checked').length;

           if((total_chk_in_row - 1) == total_checked_chk){
                jQuery(this).find('.groupHeadCheck').prop('checked',true);
           }

        });
    });

     $(document).find('tr').each(function(){
           var total_chk_in_row = jQuery(this).find('[type="checkbox"]').length;
           var total_checked_chk = jQuery(this).find('td > [type="checkbox"]:checked').length;

           if((total_chk_in_row - 1) == total_checked_chk){
                jQuery(this).find('.groupHeadCheck').prop('checked',true);
           }

     });

    $(".groupHead").next().find("[type=checkbox]").change();
</script>

</body>
</html>

您可以尝试以下方法:

$table tbody.onchange,输入[type=checkbox],函数e{ 如果$this.hasClass'groupHeadCheck'&&$this.is':选中{ $this.closest'tr'。查找'td input'。属性'checked','checked'; } 否则如果$this.hasClass'groupHeadCheck'&&$this.not':选中{ $this.closest'tr'。查找'td input'。删除'checked'; } 如果!$this.hassclass'groupHeadCheck'{ var total=$this.closest'tr'。查找'td input'。长度; var chekced=$this.closest'tr'。查找'td input:checked'。长度; iftotal==chekced{ $this.closest'tr'。查找'th.groupHeadCheck'。属性'checked','checked'; } 否则{ $this.closest'tr'。查找'th.groupHeadCheck'。删除'checked'; } } }; 1. 2. 3.
您可以尝试以下方法:

$table tbody.onchange,输入[type=checkbox],函数e{ 如果$this.hasClass'groupHeadCheck'&&$this.is':选中{ $this.closest'tr'。查找'td input'。属性'checked','checked'; } 否则如果$this.hasClass'groupHeadCheck'&&$this.not':选中{ $this.closest'tr'。查找'td input'。删除'checked'; } 如果!$this.hassclass'groupHeadCheck'{ var total=$this.closest'tr'。查找'td input'。长度; var chekced=$this.closest'tr'。查找'td input:checked'。长度; iftotal==chekced{ $this.closest'tr'。查找'th.groupHeadCheck'。属性'checked','checked'; } 否则{ $this.closest'tr'。查找'th.groupHeadCheck'。删除'checked'; } } }; 1. 2. 3.
也可以使用此选项在开始时选中master的复选框

$table tbody .eachindex,tbody=>{ $tbody.find'tr'.eachindex,tr=>checkmastercheckboxesintrr } .onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ var allCbs=currentCB.最近的'tr'。查找'[type=checkbox]'。属性'checked',已检查; }否则{ checkmastercheckboxesintrurntcb.最近的'tr' } }; 函数checkmastercheckboxesintrtrt{ var allCbs=$tr.find'[type=checkbox]'; var allSlaves=allCbs.not.groupHeadCheck; var master=allCbs.filter.groupHeadCheck; var allChecked=allSlaves.filter:checked.length==allSlaves.length; master.propchecked,allChecked; } .groupHead td{背景色:CCC;} 1. 2. 3.
也可以使用此选项在开始时选中master的复选框

$table tbody .eachindex,tbody=>{ $tbody.find'tr'.eachindex,tr=>checkmastercheckboxesintrr } .onchange,输入[type=checkbox],函数e{ var currentCB=$this; var isChecked=此项已检查; 如果当前CB.is.groupHeadCheck{ 弗吉尼亚州 r allCbs=currentCB.最近的'tr'。查找'[type=checkbox]'。属性'checked',已检查; }否则{ checkmastercheckboxesintrurntcb.最近的'tr' } }; 函数checkmastercheckboxesintrtrt{ var allCbs=$tr.find'[type=checkbox]'; var allSlaves=allCbs.not.groupHeadCheck; var master=allCbs.filter.groupHeadCheck; var allChecked=allSlaves.filter:checked.length==allSlaves.length; master.propchecked,allChecked; } .groupHead td{背景色:CCC;} 1. 2. 3.
您的1和2对我来说似乎很好,如果您希望您的复选框水平,您可以将float:left添加到trs@ChrisLi如果你看到我在检查1。tr 2和3 tr正在被选中。您的1和2对我来说似乎很好,如果您希望您的复选框水平,您可以将float:left添加到trs@ChrisLi如果你看到我在检查1。tr 2和3 tr正在被选中。它工作正常,但仍需要修改,如果我们单独选择每个框,并且全部选中,则还应选中全部选中复选框。您可以按照要求进行@АаааЧааааабааааа。无论如何,谢谢您的帮助。@PullataPraveen您的意思是,如果我们选中第行中的任何复选框,您需要选中所有复选框,好吗?它工作正常,但仍需要修改。如果我们单独选择每个复选框,并选中所有复选框,则还应选中所有复选框。您可以按照要求进行@АаааЧааааабааааа。无论如何,谢谢你的帮助。@PullataPraveen你的意思是如果我们选中第行的任何复选框,你需要选中,好吗?