js table的一点问题 也不知道该怎么起标题 谢谢各位大佬了

$("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的时候,让他不触发这个事件 或者修改一下这个方法, 感谢各位大佬

宝慕林4294392
浏览 859回答 8
8回答

慕桂英4014372

给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);});这样就可以了 研究了大半天 终于可以了 不知道有没有人用的上 我就放这边了

慕田峪9158850

点选的时候,加上阻止冒泡就行了,这样父元素就获取不到点击事件了

慕勒3428872

全选、反全选和单独选中要分开写$(()=>{ &nbsp;&nbsp;&nbsp;&nbsp;//单选判定是否全选按钮是否要选中 &nbsp;&nbsp;&nbsp;&nbsp;$("tbody").on("click","[type=checkbox]",()=>{&nbsp;&nbsp;&nbsp;//给所有tbody下的checkbox&nbsp;绑定单击事件 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$chbs=$("tbody").find("[type=checkbox]"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;c=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=0;i<$chbs.length;i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($($chbs[i]).prop("checked")==true){//每一次点击都要判定是否所有的checkbox都被选中,统计选中的数量 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(c==$chbs.length){//&nbsp;如果所有的checkbox都被选中,全选按钮也被选中 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#selAll").prop("checked",true); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#selAll").prop("checked",false);//&nbsp;一旦有一个没被选中,全选按钮设置未选中,退出循环 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}) }); //全选和反全选 $(()=>{ &nbsp;&nbsp;&nbsp;&nbsp;$("tbody").on("change","#selAll",e=>{//&nbsp;给全选按钮单独绑定事件 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$chbs=$("tbody").find("[type=checkbox]");&nbsp;//&nbsp;找到所有的checkbox· &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($(e.target).is(":checked")){&nbsp;//&nbsp;如果全选选中,所有的checkbox都被选中 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chbs.each(function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).prop("checked",true); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chbs.each(function(){//&nbsp;否则,所有的checkbox都不能选中 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).prop("checked",false); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}); });

撒科打诨

使用bootstrap table 会让你省很多事,而且你会喜欢上它的,只能说真的好用

守着一只汪

$("tr td").first().nextAll().click(function () { 这样就是给所有tr下的td绑定事件,然后里面判断是否是全选,是否是第一个checkbox就好了

尚方宝剑之说

你写单击tr其实点击的就是其中的td $("tr td")选择器改一下就行了 这样然后根据td里面的标识进行比较就行了

翻阅古今

阻止默认事件 或者你直接用组件吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript