如何使用jquery一键检查复选框(3)

在这里,我有一堆复选框,

比方说,如果我点击任何复选框,我还要勾选下两个复选框(即旁边两个)

小提琴

任何人都可以帮助我

提前致谢。

试试这个它有你想要的切换效果。

这是脚本:

 $(':checkbox').click(function () { if ($(this).is(":checked")) { $(this).parent().nextAll("td").slice(0, 2).find(":checkbox").prop('checked', true); } else { $(this).parent().nextAll("td").slice(0, 2).find(":checkbox").prop('checked', false); } }); 

这是工作DEMO

尝试使用nextAll()eq来选择下两个。

 $('input:checkbox').change(function(){ var obj=$(this).parent().nextAll(':eq(0),:eq(1)'); //eq(0) and (1) is the index of next two checkbox obj.find(':checkbox').prop('checked',this.checked) }); 

在这里小提琴

如果未选中,则取消选中该复选框。

 $(":checkbox").click(function () { $(this).parent().nextAll("td").slice(0, 2).find(":checkbox").prop('checked', true); }); 

的jsfiddle

或试试这个

 var len = 2; var selector = 'input:checkbox'; $(selector).click(function(){ var e = $(selector).index(this); $(selector+':lt('+(e+len+1)+'):gt('+e+')') .attr('checked', 'checked'); }); 

的jsfiddle

试试这个

我在每个tr上添加了按钮

 $('button').on('click', function () { $(this).parents('tr').find('td>input[type=checkbox]').each(function (i, j) { if (i == 3) { return false; } $(this).prop('checked', true); }) }) 

的jsfiddle

香草JS解决方案:

 var checkboxes = document.querySelectorAll('input[type="checkbox"]'); for(var i=0,iLen=checkboxes.length; i 

的jsfiddle

一种不同的方法。 不使用DOM,而是使用输入元素的数组。

也适用于第一个和最后一个元素 (如果你想要这个,你没有指定)。

http://jsfiddle.net/Y7tR2/

 $('input').change(function () { var i = $.inArray(this, $('input')); var n = i + 1; var p = i - 1; if (n >= $('input').length) n = 0; if (p < 0) p = $('input').length - 1; $('input').eq(n).attr("checked", $(this).attr('checked') ? true : false); $('input').eq(p).attr("checked", $(this).attr('checked') ? true : false); }); 

试试这个工作脚本

  $('input[type="checkbox"]').click(function(obj){ if( $(this).is(':checked')) { $(this).parent().nextAll().has(":checkbox").eq(0).find(":checkbox").attr('checked','checked'); $(this).parent().nextAll().has(":checkbox").eq(1).find(":checkbox").attr('checked','checked'); }else{ $(this).parent().nextAll().has(":checkbox").eq(0).find(":checkbox").removeAttr('checked'); $(this).parent().nextAll().has(":checkbox").eq(1).find(":checkbox").removeAttr('checked'); } }); 

DEMO

 $(':checkbox').click(function(){ $(this).parent().nextAll().slice(0,2).find(":checkbox").attr('checked',this.checked) }) 

使用jquery的另一个解决方案:

  $('input').on('click', function () { var count=0; $.each($(this).parents('tr').find('td>input[type=checkbox]'), function( index, value ) { if($(value).is(":checked")){ count++; } else if(count > 0 && count <= 2){ $(value).attr('checked', true); count++; } }); }) 

的jsfiddle