52

同じページに20個のチェックボックスを作成するループがあります(異なるフォームが作成されます)。Chrome開発者ツールを使用して、すべてのチェックボックスを同時にチェックするライブラリを使用せずにJavaScriptを実行したいと考えています。

これは私が得た限りです:

function() {
    var aa= document.getElementsByTagName("input");
    for (var i =0; i < aa.length; i++){
     aa.elements[i].checked = checked;
    }
}

PS:Stack-Overflowでたくさんの質問を検索して見つけましたが、どれもうまくいきませんでした。誰かが私に正しい答えを見つけてくれたら嬉しいです。

4

8 に答える 8

112
(function() {
    var aa= document.getElementsByTagName("input");
    for (var i =0; i < aa.length; i++){
        if (aa[i].type == 'checkbox')
            aa[i].checked = true;
    }
})()

最新のブラウザでは、document.querySelectorAllを使用できます

(function() {
    var aa = document.querySelectorAll("input[type=checkbox]");
    for (var i = 0; i < aa.length; i++){
        aa[i].checked = true;
    }
})()
于 2013-01-09T20:27:52.430 に答える
17

Console Dev Tools(F12)から、javascriptまたはjQueryコードで使用するのと同じようにクエリセレクターを使用できます。

'$$'-すべてのアイテムを選択することを意味します。代わりに「$」を使用すると、最初のアイテムのみが取得されます。

したがって、すべてのチェックボックスを選択するには、次のようにすることができます

$$('input').map(i => i.checked = true)

また

$$('input[type="checkbox"').map(i => i.checked = true)

于 2017-04-18T21:00:25.183 に答える
6

受け入れられた回答を少し変更するには、Loom.comなどの一部のサービスのすべてのチェックボックスをオンにしようとしている場合は、単に「チェック済み」ステータスに設定するのではなく、それぞれをクリックする必要があります。機能が期待どおりに機能しません。

これを行うためのコードは次のとおりです。

(function() {
    var aa = document.querySelectorAll("input[type=checkbox]");
    for (var i = 0; i < aa.length; i++){
        aa[i].click();
    }
})()

チェックボックスのリストが長くなると、すべてのチェックボックスが自動的にクリックされるため、ページが一時的に一時停止することに注意してください。

于 2020-08-03T16:23:01.883 に答える
3

あなたはそれをほぼ正しいと思います。使用するだけ

aa[i].checked = "checked";

ループ内。

つまり、次のことを確認する必要があります。

  1. "checked"は文字列であり、変数識別子ではなく、
  2. 存在しない、aaではなく、直接インデックスを作成しますaa.elements
于 2013-01-09T20:25:10.097 に答える
2

あなたがクイックワンライナーのためにここにいるなら:

var aa = document.getElementsByTagName("input"); for (var i = 0; i < aa.length; i++) aa[i].checked = true;
于 2014-09-03T16:28:08.560 に答える
1

これを試して :)

(function () {
    var checkboxes = document.querySelectorAll('input[type=checkbox]');

    //convert nodelist to array
    checkboxes = Array.prototype.slice.call(checkboxes);
    checkboxes.forEach(function (checkbox) {
        console.log(checkbox);
        checkbox.setAttribute('checked', true);
    });

})()

http://jsfiddle.net/YxUHw/

于 2013-01-09T20:36:10.607 に答える
1

すべてのチェックボックスを切り替える(チェック/チェックを外す)Javascript関数。

function checkAll(bx)
{
 var cbs = document.getElementsByTagName('input');
 for(var i=0; i < cbs.length; i++)
 {
    if(cbs[i].type == 'checkbox')
    {
        cbs[i].checked = bx.checked;
     }
 }
}

開発者ツールから取得したい場合は、関数のパラメーターを削除し、値を「bx.checked」ではなく「true」または「false」に設定します。

于 2013-10-01T14:46:14.350 に答える
0

試してみてくださいsetAttribute

(function() {
  var aa = document.getElementsByTagName("input");
  for (var i =0; i < aa.length; i++){
    aa.elements[i].setAttribute('checked', 'checked');
  }
})();

編集:関数をすぐに実行するための親を追加しました。

于 2013-01-09T20:25:57.750 に答える