使用jQuery循环访问HTML复选框

时间:2010-11-25 22:06:44

标签: jquery html loops checkbox

我正在尝试使用jQuery编写以下内容。

当你点击一个段落时,它会检查是否选中了(检查)了checkbok,是否等了x量的时间并选择下一个复选框等等。

我最接近(不多,抱歉)you can see it here

在这个示例中,您必须为每次检查单击一次,我不想要这个。

当您点击<p>它:

时,我需要这样做
  • 检查,
  • 变化,
  • 检查,
  • 更改(等等)

如果可以循环使用,那就更好了。

非常感谢,我希望它足够清楚,如果没有,请问!

编辑:正如@James所说基本上我想要的是

  

不断循环通过   复选框检查和取消选中   它们

1 个答案:

答案 0 :(得分:2)

你的意思是这样吗?

$('p').click(function() {
    $(':checkbox').each(function(i) {
        var current = $(this);
        setTimeout(function() { current.attr('checked', !current.attr('checked'))}, i*500);
    });
});

在此处更新了jsFiddle:http://www.jsfiddle.net/jXHTJ/2/

更新:要更改每次点击的顺序(按照评论中的要求),以便按照{1,2,3}然后{2,3,1}然后{3,1}检查/取消选中复选框,2},您可以使用以下代码:

(function() {
    var startWith = 0;
    $('p').click(function() {
        var checkboxes = $(':checkbox');
        var numCheckboxes = checkboxes.length;
        checkboxes.each(function(i) {
            var current = $(this);
            var delay = (i + startWith) % numCheckboxes;
            setTimeout(function() { current.attr('checked', !current.attr('checked'))}, delay*500);
        });
        startWith = ++startWith % numCheckboxes;
    });
})();

请注意,我将代码封装在我立即执行的匿名函数中,这样我就不会使用startWith变量污染全局命名空间。更新的jsFiddle在这里:http://www.jsfiddle.net/jXHTJ/3/