Mehrere Probleme:
- Dies kann mehr zum Thema Stack Overflow sein.
- So verwenden Sie nicht
getElementsByClassName
; Es werden nicht mehrere Klassen gleichzeitig ausgeführt. - Für richtige CSS-Selektoren möchten Sie
querySelectorAll
Doc . grid_8
undpt5
sind keine robusten Ziele. Sie werden sich wahrscheinlich häufig ändern.
Ein besserer CSS-Pfad wäre etwa so:
.querySelectorAll ('.displayInlineTable input:checked')
(Siehe den Code unten.)- Möglicherweise lädt Ihre Webseite die Kontrollkästchen dynamisch (über AJAX). Wenn dies der Fall ist, müssen Sie AJAX- fähige Methoden wie waitForKeyElements verwenden .
Also für eine statische Webseite:
Code wie so funktioniert:
var chkdItems = document.querySelectorAll (".displayInlineTable input:checked"); console.log ("Checked Items:\n--------------"); chkdItems.forEach ( (chkBox, J) => { console.log (J, ": ", chkBox.value); } );
Sehen Sie sich eine Live-Demo bei jsFiddle an .
Für eine dynamische (AJAX) Webseite:
Ein vollständiges Greasemonkey / Tampermonkey-Skript funktioniert wie folgt:
// ==UserScript== // @name _Simple Checkbox value demo // @match *://YOUR_SERVER.COM/YOUR_PATH/* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== //- The @grant directive is needed to restore the proper sandbox. waitForKeyElements (".displayInlineTable input:checked", listChkbxValues); function listChkbxValues (jNode) { if ( ! listChkbxValues.hdrPrinted) { listChkbxValues.hdrPrinted = true; console.log ( ` Checked Items listed asynchronously, below:\n ------------------------------------------- ` ); } console.log ("Found value: ", jNode.val () ); }
Beachten Sie, dass auch jQuery genutzt wird, was normalerweise eine gute Idee ist.