2

单击时#checkbox-subscribe-everything,我希望所有带有names 的输入都遵循以下模式,交替选中和取消选中:

name=checkbox-subscribe-game, name=checkbox-subscribe-game1, name=checkbox-subscribe-game2, name=checkbox-subscribe-game3等等...

这是我当前使用 NUMBER 作为占位符的 jQuery 代码:

$("#checkbox-subscribe-everything").click(function() {
    var checkBoxes = $("input[name=checkbox-subscribe-gameNUMBER]");
    checkBoxes.prop("checked", !checkBoxes.prop("checked"));
});

如何使用正则表达式匹配遵循该命名模式的所有输入?

谢谢

4

3 回答 3

3

您可以使用attribute starts with选择器:

$("#checkbox-subscribe-everything").change(function() {
    $("input[name^=checkbox-subscribe-game]").prop('checked', this.checked);
});

由于选择器不是很快,如果不是动态创建元素,还可以缓存对象:

var $checkboxes = $("input[name^=checkbox-subscribe-game]");

$("#checkbox-subscribe-everything").change(function() {
    $checkboxes.prop('checked', this.checked);
});
于 2013-02-20T22:41:33.723 回答
1

像这样的东西怎么样:name^=checkbox ...

cf http://api.jquery.com/attribute-starts-with-selector/

于 2013-02-20T22:41:37.603 回答
1

这就是我喜欢 jQuery 选择器的原因。请注意名称属性选择器中的 ^。

http://api.jquery.com/attribute-starts-with-selector/

var checkBoxes = $("input[name^='checkbox-subscribe-game']");
于 2013-02-20T22:42:00.983 回答