$("tr").first().nextAll().click(function () {
$("input[name='chkId']:checkbox").attr('checked',false);
$("#chkAll").attr('checked',false);
$(this).children().first().children().attr("checked", true);
});
单击tr选中当前行的第一个td的事件, 但是现在有个需求是一个点选 对多条进行操作的功能 就和这个冲突了 只能全选, 能不能把这个修改一下 就是如果我点击每一行第一个td 就是那个checkbox的时候,让他不触发这个事件 或者修改一下这个方法, 感谢各位大佬
给ajax刷上去的tr加一个class 用于区分标题栏和数据
$(".trEmp td").nextAll().click(function () {
$("input[name='chkId']:checkbox").attr('checked',false);
$("#chkAll").attr('checked',false);
$(this).parent().children().first().children().attr("checked", true);
});
这样就可以了 研究了大半天 终于可以了 不知道有没有人用的上 我就放这边了
点选的时候,加上阻止冒泡就行了,这样父元素就获取不到点击事件了
全选、反全选和单独选中要分开写
$(()=>{
//单选判定是否全选按钮是否要选中
$("tbody").on("click","[type=checkbox]",()=>{ //给所有tbody下的checkbox 绑定单击事件
var $chbs=$("tbody").find("[type=checkbox]");
var c=0;
for(var i=0;i<$chbs.length;i++){
if($($chbs[i]).prop("checked")==true){//每一次点击都要判定是否所有的checkbox都被选中,统计选中的数量
c++;
if(c==$chbs.length){// 如果所有的checkbox都被选中,全选按钮也被选中
$("#selAll").prop("checked",true);
}
}else{
$("#selAll").prop("checked",false);// 一旦有一个没被选中,全选按钮设置未选中,退出循环
break;
}
}
})
});
//全选和反全选
$(()=>{
$("tbody").on("change","#selAll",e=>{// 给全选按钮单独绑定事件
var $chbs=$("tbody").find("[type=checkbox]"); // 找到所有的checkbox·
if($(e.target).is(":checked")){ // 如果全选选中,所有的checkbox都被选中
$chbs.each(function(){
$(this).prop("checked",true);
});
}else{
$chbs.each(function(){// 否则,所有的checkbox都不能选中
$(this).prop("checked",false);
});
}
});
});
使用bootstrap table 会让你省很多事,而且你会喜欢上它的,只能说真的好用
该方法是需要加一个判断的,如果点击的是第一个td该方法直接结束就行了,如果点击的是其他td那么选中
阻止默认事件 或者你直接用组件吧