2

#checkbox-subscribe-everythingをクリックすると、以下のパターンに従うsを持つすべての入力が交互nameにオンとオフになります。

name=checkbox-subscribe-game、、、 など ..。name=checkbox-subscribe-game1_ name=checkbox-subscribe-game2name=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 セレクターが好きな理由です。name 属性セレクターの ^ に注意してください。

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

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