Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript或jQuery选中前20个复选框,然后选中下20个复选框,以此类推_Javascript_Jquery_Checkbox - Fatal编程技术网

JavaScript或jQuery选中前20个复选框,然后选中下20个复选框,以此类推

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

是否可以使用JavaScript或jQuery执行上述操作

我正在为每个人设想一个链接,比如:

<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”)并将批量值设置为选中。