下面代码中怎么写jquery才能让,点击 All的时候,选择相关行中的checkbox,
$("#br1all").click(function(){
$("input[name='br_code[]']").each(function(){$(this).attr("checked",true);})
})用上面的语句的话,点击某个ALL的话,会全部选中(上下两个tr的checkbox都会选中,但我只要在哪个tr中选择全部的话,只选中当前tr中的全部),怎样才能区分不同的tr,然后进行全选。还有一个问题是上面的代码怎么修改才能在点击 All前面的checkbox,全选之后,再次点击checkbox会全部取消选择。<table id="tbBrandCode">
<tr class="brand_code1">
<td valign="top" width="50"><input type="checkbox" class="checkAll1" id="br1all"><label for="br1all">ALL</label></td>
<td>
<ul>
<!--{@ brands['F'] }-->
<li>
<input type="checkbox" id="br_{.key_}" name="br_code[]" value="{.key_}">
<label for="br_{.key_}">{.key_}</label>
</li>
<!--{/}-->
</ul>
</td>
</tr>
<tr class="brand_code2"> 
<td valign="top"><input type="checkbox" class="checkAll2" id="br2all"><label for="br2all">ALL</label></td>
<td>
<ul>
<!--{@ brands['M'] }-->
<li>
<input type="checkbox" id="br_{.key_}" name="br_code[]" value="{.key_}">
<label for="br_{.key_}">{.key_}</label>
</li>
<!--{/}-->
</ul>
</td>
</tr>
</table>

解决方案 »

  1.   

    你可以在你点击复选框时去做判断
    点击大的全选时,从最外层的DIV(大容器)中找到所有的checkbox并选中
    点击小的全选时,从相应的TR(小容器)中找到该容器下的所有checkbox并选中
    JQ 可以用find方法的.
      

  2.   

    没有大小的,只是tr和tr。就是在第一个tr中选择全部的话,就选择全部的当前tr中的checkbox
    而选中第二个tr中的全部的话,就选择全部的当前tr中的checkbox现在是选择第一个tr中选择全部的话,就会选择所有的checkbox,包括其他tr中的
      

  3.   

    $("#br1all").click(function(){
      $(this).find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));
    })
      

  4.   


    我的意思你没有明白 
    如果你只是要选中其中一个tr下面的所有的checkbox 
    那么请给你的tr设置一个ID 
    然后使用JQ的find方法 在ID为你设置的tr下找到所有的checkbox 选中
      

  5.   


    var obj = $("tr[id='tr1']").find("input[type='checkbox']");
    //这个 obj.length = 6<table>
            <tr id="tr1">
                <td>
                    <input id="Checkbox1" type="checkbox" />
                    <input id="Checkbox2" type="checkbox" />
                    <input id="Checkbox3" type="checkbox" /></td>
                <td>
                    <input id="Checkbox4" type="checkbox" />
                    <input id="Checkbox5" type="checkbox" />
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr id="tr2">
                <td>
                    <input id="Checkbox7" type="checkbox" />
                    <input id="Checkbox8" type="checkbox" />
                    <input id="Checkbox9" type="checkbox" /></td>
                <td>
                    <input id="Checkbox10" type="checkbox" />
                    <input id="Checkbox11" type="checkbox" />
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
        </table>
      

  6.   

    $("#br3all").click(function(){
    $(".brand_code3").find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));})这段代码放在firebug里是可以用的,但是放到js文件里就不行了,代码如下
    js代码如下。
    var glists=null;
    (function($){ /***************************************************************
     * 
     **************************************************************/

    $("#br1all").click(function(){
    $(".brand_code1").find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));
    })

    $("#br2all").click(function(){
    $(".brand_code2").find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));
    })

    $("#br3all").click(function(){
    $(".brand_code3").find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));
    })
    SioListManager.prototype.empty = function()
    {
    return '没有信息.';
    };
    SioListManager.prototype.draw = function(json)
    {

    var tag = [];
    tag.push('<td class="td1"><input type="checkbox" value="'+json.no+'"/></td>');
    tag.push('<td class="td2">'+json.seq+'</a></td>');
    tag.push('<td class="td3"><a class="detail">'+json.code+'</a></td>');
    tag.push('<td class="td4">'+json.name+'</td>');
    if(json.on_sale == "T")
    {
    tag.push('<td class="td5 On">on</td>');
    }
    else
    {
    tag.push('<td class="td5 off">Off</td>');
    }


    tag.push('<td class="td6">'+json.insert_time+'</td>');
    tag.push('<td class="td7">'+json.sync_time+'</td>');

    return tag.join('');
    };

    SioListManager.prototype.draw_event = function()
    {
    $(this.root+'>tbody>tr').map(function(){
    // console.log($(this).children('td .td7').text())
    if($(this).children('td .td7').text() != '')
    {
    $(this).addClass('done');
    }

    });


    //$(this.root+'>tbody>tr:odd').addClass("odd");
    };

    $(document).ready(function(){
    glists = new SioListManager('products/json');
    glists.set_del_url('');
    glists.set_root('#listTable');
    glists.set_totalbox('span#listTotal>b');
    glists.set_searchbox('#searchForm');
    glists.set_listsize(15);
    glists.set_pagesize(10);
    glists.set_pagebar('#pagebar');
    glists.get(1);
    });

    })
    /***************************************************************/
    })(jQuery);
      

  7.   


    $(".brand_code3").find("input[name='br_code[]']")你这种写法找的是“class”为“brand_code3”的标签下所有 “name”为 “br_code[]” 的input 
    你这里应该只需要找“checkbox”换一种写法试试
    尽量不要把问题复杂化