Várias questões:
- Isso pode ser mais um tópico no Stack Overflow.
- Não é assim que você usa
getElementsByClassName
; não faz várias aulas ao mesmo tempo. - Para os seletores CSS adequados, você deseja
querySelectorAll
Doc . -
grid_8
ept5
não são alvos robustos. Eles provavelmente mudam com frequência.
Um melhor caminho "CSS" seria algo como:
.querySelectorAll ('.displayInlineTable input:checked')
(Veja o código, abaixo). - Pode ser que sua página da Web carregue as caixas de seleção dinamicamente (via AJAX). Se isso for verdade, você precisará usar métodos com reconhecimento de AJAX, como waitForKeyElements .
Então, para uma página da Web estática:
O código assim funcionará:
var chkdItems = document.querySelectorAll (".displayInlineTable input:checked");
console.log ("Checked Items:\n--------------");
chkdItems.forEach ( (chkBox, J) => {
console.log (J, ": ", chkBox.value);
} );
Veja uma demonstração ao vivo do jsFiddle .
Para uma página da web dinâmica (AJAX):
Um script completo do Greasemonkey / Tampermonkey, assim, funcionará:
// ==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 () );
}
Note que ele também utiliza o jQuery, o que geralmente é uma boa ideia.