我想构建一个jquery函数或onclick事件,如果单击中间列表并取消选中其列表上方的所有复选框,则会检查所有复选框。
为了进一步解释,例子我有5个复选框:
Checkbox 1
Checkbox 2
Checkbox 3
Checkbox 4
Checkbox 5
第一种情况:
如果我点击Checkbox 3,则会检查下面的所有复选框,即Checkbox 4&复选框5。
第二种情况:
如果我取消选中Checkbox 3,则所有Checkbox 3,4和5也将取消选中。
答案 0 :(得分:2)
您可以使用更改事件,以便每次复选框更改其值时,您可以为其余元素设置此新值(已选中,未选中):
//
// When a checkbox changes its value do....
//
$(':checkbox').on('change', function(e) {
//
// get current value: checked/unchecked
//
var chk = this.checked;
//
// get all next checkbox elements and set their values
// to the current value: checked/unchecked
//
// $(this).nextAll(':checkbox').prop('checked', chk);
// UPDATE
//
// get all next checkbox elements and set their values
// to the current value: checked/unchecked
//
if (chk == true) {
$(this).nextAll(':checkbox').prop('checked', chk);
} else {
$(this).siblings(':checkbox').prop('checked', chk);
}
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="checkbox" name="vehicle" value="1">1<br>
<input type="checkbox" name="vehicle" value="2">2<br>
<input type="checkbox" name="vehicle" value="3">3<br>
<input type="checkbox" name="vehicle" value="4">4<br>
<input type="checkbox" name="vehicle" value="5">5<br>
</form>
&#13;
答案 1 :(得分:0)
好吧,您可以使用JS创建一个包含所有复选框的列表,并通过其中任何一个的单击事件,您将迭代此列表并逐个检查,设置属性“checked = true;”
希望它有所帮助! :)
答案 2 :(得分:0)
<ul>
<li><input type="checkbox" id="select_all"/> Selecct All</li>
<li><input class="checkbox" id="1" type="checkbox" name="check[]"> This is Item 1</li>
<li><input class="checkbox" id="2" type="checkbox" name="check[]"> This is Item 2</li>
<li><input class="checkbox" id="3" type="checkbox" name="check[]"> This is Item 3</li>
<li><input class="checkbox" id="4" type="checkbox" name="check[]"> This is Item 4</li>
<li><input class="checkbox" id="5" type="checkbox" name="check[]"> This is Item 5</li>
<li><input class="checkbox" id="6" type="checkbox" name="check[]"> This is Item 6</li>
</ul>
JQuery的:
// $(this).attr('id')获取当前ID //$(":checkbox").length获取所有复选框
$('.checkbox').change(function(){ //".checkbox" change
for(int i=$(this).attr('id');i<= $(":checkbox").length;i++)
{
if(this.checked == false){
$("#" + i).prop('checked', true);
}
else{
$("#" + i).prop('checked', false);
}
}
});
答案 3 :(得分:0)
我也想分享我的答案。这是对上述答案的更新和修改:
Excel.Application objexcel = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook xlBook = objexcel.Workbooks.Open(filename);
Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets.get_Item(1);
range = xlSheet.UsedRange;
Excel.Range last =xlSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
range.get_Range("A2", last).Delete(XlDeleteShiftDirection.xlShiftUp);