Несколько вопросов:
- Это может быть больше по теме в переполнении стека.
- Это не то, как вы используете
getElementsByClassName
; он не делает несколько классов одновременно. - Для правильных селекторов CSS, вы хотите
querySelectorAll
док . grid_8
иpt5
не являются надежными целями. Они могут часто меняться.
Лучший CSS-путь будет выглядеть примерно так:
.querySelectorAll ('.displayInlineTable input:checked')
(см. Код ниже.)- Возможно, ваша веб-страница загружает флажки динамически (через AJAX). Если это правда, вам нужно использовать AJAX-осведомленные методы, такие как waitForKeyElements .
Итак, для статической веб-страницы:
Код вроде так будет работать:
var chkdItems = document.querySelectorAll (".displayInlineTable input:checked"); console.log ("Checked Items:\n--------------"); chkdItems.forEach ( (chkBox, J) => { console.log (J, ": ", chkBox.value); } );
Смотрите живое демо на jsFiddle .
Для динамической (AJAX) веб-страницы:
Полный скрипт Greasemonkey / Tampermonkey будет работать так:
// ==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 () ); }
Обратите внимание, что он также использует jQuery, что обычно является хорошей идеей.