JavaScript或jQuery选中前20个复选框,然后选中下20个复选框,以此类推
是否可以使用JavaScript或jQuery执行上述操作 我正在为每个人设想一个链接,比如:JavaScript或jQuery选中前20个复选框,然后选中下20个复选框,以此类推,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,是否可以使用JavaScript或jQuery执行上述操作 我正在为每个人设想一个链接,比如: <a href=#>Check 1-20</a> <a href=#>Check 21-40</a> <a href=#>Check 41-60</a> 等等 虽然我的复选框是用PHP动态生成的,如下所示(我有很多复选框): 如果有人对此有任何想法或最佳方法,我们将不胜感激:)有很多方法可以做到这一点 对于您当前的HTM
<a href=#>Check 1-20</a>
<a href=#>Check 21-40</a>
<a href=#>Check 41-60</a>
等等
虽然我的复选框是用PHP动态生成的,如下所示(我有很多复选框):
如果有人对此有任何想法或最佳方法,我们将不胜感激:)有很多方法可以做到这一点 对于您当前的HTML,最好的方法就是迭代元素,并分别选择它们
function select(start, end) {
for (var i=start;i<end;i++) {
$('.checkbox[value="' + i + '"]').prop('checked', true);
}
}
然后:
如果需要,还可以手动解析超链接的文本(并避免数据属性
$(document).on('click', 'a', function (e) {
event.preventDefault();
var values = $(this).text().match(/ (\d+)-(\d+)/);
select(parseInt(values[1], 10), parseInt(values[2], 10));
});
有很多方法可以做到这一点
对于您当前的HTML,最好的方法就是迭代元素,并分别选择它们
function select(start, end) {
for (var i=start;i<end;i++) {
$('.checkbox[value="' + i + '"]').prop('checked', true);
}
}
然后:
如果需要,还可以手动解析超链接的文本(并避免数据属性
$(document).on('click', 'a', function (e) {
event.preventDefault();
var values = $(this).text().match(/ (\d+)-(\d+)/);
select(parseInt(values[1], 10), parseInt(values[2], 10));
});
不需要循环,只需使用以下公式,其中X是开始索引,Y是结束索引
$('input[name='select[]']:gt(X):lt(Y)').attr("checked", true);
$('input[name='select[]']:gt(0):lt(20)').attr("checked", true);
将其转换为类似于Rory的post的函数,它将是动态的(没有循环)。不需要循环,您可以使用以下函数,其中X是开始索引,Y是结束索引
$('input[name='select[]']:gt(X):lt(Y)').attr("checked", true);
$('input[name='select[]']:gt(0):lt(20)').attr("checked", true);
把它转换成一个类似于Rory的帖子的函数,它将是动态的(没有循环)
是否可以使用JavaScript或jQuery执行上述操作
是的。有很多方法可以做到。如果你能在jQuery中做到,你可以在“普通”JavaScript中做到,因为jQuery是用JavaScript编写的
这里有一个方法:
$(document).ready(function() {
var $cbs = $('input:checkbox[name="select[]"]'),
$links = $("a"); // you probably don't want _all_ links,
// so add a class or something.
$links.click(function() {
var start = $links.index(this) * 20,
end = start + 20;
$cbs.slice(start,end).prop("checked",true);
});
});
演示:
这将获取被单击的特定链接的索引,并使用它来计算要检查的复选框的范围,然后检查这些复选框
是否可以使用JavaScript或jQuery执行上述操作
是的。有很多方法可以做到。如果你能在jQuery中做到,你可以在“普通”JavaScript中做到,因为jQuery是用JavaScript编写的
这里有一个方法:
$(document).ready(function() {
var $cbs = $('input:checkbox[name="select[]"]'),
$links = $("a"); // you probably don't want _all_ links,
// so add a class or something.
$links.click(function() {
var start = $links.index(this) * 20,
end = start + 20;
$cbs.slice(start,end).prop("checked",true);
});
});
演示:
这将获取所单击的特定链接的索引,并使用它来计算要检查的复选框的范围,然后检查这些复选框…您可以这样做
<a href=# rel="1-20">Check 1-20</a>
<a href=# rel="21-40">Check 21-40</a>
<a href=# rel="41-60">Check 41-60</a>
所以我所做的是,我将rel属性添加到链接中,然后使用它们来获取范围:例如,1-20是从1到20。结束我从1减少了,因为元素从0索引。然后我搜索了结束元素并检查了所有元素,直到结束元素。结束元素不会被检查,这就是我没有将20减少1的原因。 你可以这样做
<a href=# rel="1-20">Check 1-20</a>
<a href=# rel="21-40">Check 21-40</a>
<a href=# rel="41-60">Check 41-60</a>
所以我所做的是,我将rel属性添加到链接中,然后使用它们来获取范围:例如,1-20是从1到20。结束我从1减少了,因为元素从0索引。然后我搜索了结束元素并检查了所有元素,直到结束元素。结束元素不会被检查,这就是我没有将20减少1的原因。 您可以尝试以下方法:
$('a').click(function() {
$('.checkbox:gt(' + ($(this).index() * 20) + '):lt(' + (($(this).index() * 20) +21) + ')').attr('checked', 'checked');
});
为此:
<a href="#">Check 1-20</a>
<a href="#">Check 21-40</a>
<a href="#">Check 41-60</a>
<input type="checkbox" class="checkbox" name="select[]" value="5153"/>
<input type="checkbox" class="checkbox" name="select[]" value="5154"/>
<input type="checkbox" class="checkbox" name="select[]" value="5155"/>
您可以尝试以下方法:
$('a').click(function() {
$('.checkbox:gt(' + ($(this).index() * 20) + '):lt(' + (($(this).index() * 20) +21) + ')').attr('checked', 'checked');
});
为此:
<a href="#">Check 1-20</a>
<a href="#">Check 21-40</a>
<a href="#">Check 41-60</a>
<input type="checkbox" class="checkbox" name="select[]" value="5153"/>
<input type="checkbox" class="checkbox" name="select[]" value="5154"/>
<input type="checkbox" class="checkbox" name="select[]" value="5155"/>
我想这也行得通:
function checkOptions(from, to){
var checksArray = $(".checkbox input[type=checkbox]");
for(var i = from; i < to; i++){
$(checksArray[i]).attr("checked", true);
}
return;
}
功能检查选项(从、到){
var checksArray=$(“.checkbox输入[type=checkbox]”);
for(var i=from;i
我想这也行得通:
function checkOptions(from, to){
var checksArray = $(".checkbox input[type=checkbox]");
for(var i = from; i < to; i++){
$(checksArray[i]).attr("checked", true);
}
return;
}
功能检查选项(从、到){
var checksArray=$(“.checkbox输入[type=checkbox]”);
for(var i=from;i
此JQUERY代码将以简单的方式为您完成此任务
$('[name="select[]"]').slice(start,end).prop("checked",true);
示例
只需使用这个函数。。
如果要检查前20个,然后
$('[name="select[]"]').slice(0,20).prop("checked",true);
如果要选中30到40复选框,则使用
$('[name="select[]"]').slice(30,40).prop("checked",true);
此JQUERY代码将以简单的方式为您完成此任务
$('[name="select[]"]').slice(start,end).prop("checked",true);
示例
只需使用这个函数。。
如果要检查前20个,然后
$('[name="select[]"]').slice(0,20).prop("checked",true);
如果要选中30到40复选框,则使用
$('[name="select[]"]').slice(30,40).prop("checked",true);
我最好将.class1-20.class21-40放在复选框中,并使用jquery选择一组元素$(“.class21-40”)并将批量值设置为选中。我最好将.class1-20.class21-40放在复选框中,并使用jquery选择一组元素$(“.class21-40”)并将批量值设置为选中。