u011954534
六月风止
采纳率75%
2015-07-28 02:57 阅读 1.9k

jquery控制checkbox是否选中,第二次全选时没有作用。

    $(function(){
                var powerList = ${jsonStr};
                var actions = '${actions}';
                for(i=0;i<powerList.length;i++){
                    $("#"+powerList[i].pId).append("<input name='checkbox' type='checkbox' value='"+powerList[i].id+"' />"+powerList[i].name);
                    if(actions.indexOf(powerList[i].id) != -1){
                        $("input[value='"+powerList[i].id+"']").attr('checked',true);
                    }
                }
            });
            function checkAll(name){
                var check = $("input[name='"+name+"']").is(':checked');
                var children = $("#"+name).find('input[type=checkbox]');
                if(check){
                    children.attr("checked",true);
                }else{
                    children.attr("checked",false);
                }
            }
 <div class="div_main">
                <div class="div_title">系统管理</div>
                <div style="padding:10px">
                <table class="table_main">
                    <tr>
                        <td class="td_title" >组织架构
                         <input name="organization_manage" type="checkbox"  onchange="checkAll(name);" />
                        </td><td class="td_title"></td>
                    </tr>
                    <tr>
                        <td id="organization_manage"></td>
                    </tr>
                    <tr>
                        <td class="td_title">岗位授权</td><td class="td_title"></td>
                    </tr>
                    <tr></tr>
                </table>
                </div>
            </div>

界面
当我打开界面第一次点中全选时可以实现,再次点击也可以取消全选;可是当第二次点击全选时下面的复选框就不再显示被选中了,但是单击选择了下面的复选框后再点击全选是可以把下面的取消的,这是为什么啊,求解。

第一张图中 $(function(......))方法就是向下面id为organization_manage的“《td》”标签中加入几个checkbox标签

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    danielinbiti danielinbiti 2015-07-28 04:30

    js代码贴成图片,别人没法给你调试,另外把td下标签的代码结构也得贴出来

    点赞 评论 复制链接分享
  • strutce 丵鹰 2015-07-28 03:26

    if (check){//当为true是要设置成false
    children.attr("checked",false);
    }else{
    children.attr("checked",true);
    }

    点赞 评论 复制链接分享
  • yuke198907 yuke198907 2015-07-28 05:00

    checkAll的参数应该是checkbox吧

    点赞 评论 复制链接分享
  • u011954534 六月风止 2015-07-28 08:06

    谢谢各位,已经解决了。是j1.6以后追加属性最好用prop()不要再用attr()了

    点赞 评论 复制链接分享
  • sina_2831808769 sina_2831808769 2015-07-28 12:48

    占个位置------

    点赞 评论 复制链接分享

相关推荐