下面代码中怎么写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.   

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

  2.   

    我没有仔细看,改一下就好了
    $("#br1all").click(function(){
      $(this).closest("tr").find("input[name='br_code[]']").attr("checked",$(this).attr("checked"));
    })
     $(this).closest("tr") //获得当前tr,再取tr下面的checkbox
      

  3.   

    $("#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);
      

  4.   

    估计是你放在head里面,然后元素还没有渲染,就执行绑定了.
    把click事件放到$(document).ready(function(){里.