Jquery 如何根据其他复选框组的选中状态使复选框处于选中状态?

Jquery 如何根据其他复选框组的选中状态使复选框处于选中状态?,jquery,smarty,Jquery,Smarty,我正在使用smarty模板引擎显示HTML输出。以下是我的两组复选框代码: <table width="99%" border="0" cellpadding="5" cellspacing="5"> <tr><td colspan="2" id="test_package_error_msgs" style="display:none;" class="errorMsg"></td></tr

我正在使用smarty模板引擎显示HTML输出。以下是我的两组复选框代码:

<table width="99%" border="0" cellpadding="5" cellspacing="5">
                        <tr><td colspan="2" id="test_package_error_msgs" style="display:none;"  class="errorMsg"></td></tr>
                        <tr height="35">
                            <td colspan="2" id="test_package_loader" height="10" align="center" style="display:none;"></td>
                        </tr>
                        <tr>
                            <td align="center"><b>Select Classes</b></td>
                            <td align="center"><b>Class Subjects</b></td>
                        </tr>       
                        <tr><td colspan="2">&nbsp;</td></tr>
                        {section name=map loop=$cs_map_data}        
                      <tr height="30">
                        <td align="center" width="300"  valign="top">                                                                   
                          <input type="checkbox" name="class_ids_[]" id="class_id_{$cs_map_data[map].class_id}" value="{$cs_map_data[map].class_id}" {if in_array($cs_map_data[map].class_id, $cls_data)}checked="checked"{/if}/>   
                          {$cs_map_data[map].class_name}</td>
                          <td>                                                                  
                          <table>
                            <tr>
                            {assign var='i' value=0}                            
              {section name=subject loop=$cs_map_data[map].class_subjects}
              {if $i%4 == 0}</tr><tr>{/if}
                <td align="left" valign="top" width="150">
                <input type="checkbox" name="cs_map_ids[]" id="{$cs_map_data[map].class_subjects[subject].cs_map_id}" value="{$cs_map_data[map].class_subjects[subject].cs_map_id}" {if in_array($cs_map_data[map].class_subjects[subject].cs_map_id, $data)}checked="checked"{/if}/>
                {$cs_map_data[map].class_subjects[subject].subject_name}
                </td>
                {assign var='i' value=$i+1}
              {/section} 
              </tr>
            </table>
                        </td>
                    </tr>
                    {/section}  
                    <tr>
                        <td colspan="2" valign="top" align="center"><input type="submit" name="btn_submit" id="btn_submit" value="{$submit_value}" class="submit">  &nbsp;&nbsp;
                        <input type="button" name="back" id="back" value="{$cancel_value}" class="submit" onclick="javascript:window.location.href='{$control_url}modules/teachers/teachers.php?op={$query_string}'" />

                        </td>
                    </tr>
                </table>

选课
班级科目
{section name=map loop=$cs\u map\u data}
{$cs\u map\u data[map].class\u name}
{assign var='i'value=0}
{section name=subject loop=$cs\u map\u data[map].class\u subjects}
{if$i%4==0}{/if}
{$cs\u map\u data[map]。类\u subject[subject]。subject\u name}
{assign var='i'值=$i+1}
{/section}
{/section}
相关屏幕截图也随附于此问题。 现在我想做的是,如果选中了类名中的任何复选框,则应选中其相关主题数组中的任何复选框,反之亦然(意味着如果用户选中了主题数组中的任何复选框,则在取消选择主题时应选中并取消选中相关类名复选框)。我必须通过jQuery实现。我是jquery的新手,所以对此我没有太多想法。谁能帮我实现这个目标?提前谢谢。

请参考


注意:
这有一个缺点:如果您取消选中一个主题,类将取消选中。如果我有时间的话,我会继续,稍后再更新小提琴。

我检查了你的小提琴。它符合我的一些要求。但我的箱子里有两张桌子。受试者姓名出现在一个完全不同的表格中。类名出现在另一个表中,第二个表包含subjects表。你能给我提供更好的解决方案吗?
$(".student_class").on("click", function(){
    if( $(this).is(':checked') ) {
        $(this).parents('tr').find("input:checkbox").prop("checked",$(this).prop("checked"))
    }else{
    $(this).parents('tr').find("input:checkbox").attr( "checked", false );
    }
});

$('table td:not(:first-child) input:checkbox').on("click",function(){
    if ($(this).is(':checked')){
        $(this).closest('tr').children('td:first').find('input:checkbox').prop("checked",$(this).prop("checked"))
    }else{
         $(this).closest('tr').children('td:first').find('input:checkbox').attr( "checked", false );
    }
});