J'ai une boucle qui crée 20 cases à cocher dans la même page (elle crée différentes formes). Je souhaite que les outils de développement chrome exécutent un JavaScript sans utiliser de bibliothèque qui VÉRIFIE toutes les cases à cocher en même temps.
function() { var aa= document.getElementsByTagName("input"); for (var i =0; i < aa.length; i++){ aa.elements[i].checked = checked; } }
PS: J'ai cherché et trouvé beaucoup de questions dans Stack-Overflow, mais personne n'a travaillé pour moi, je serai ravi que quelqu'un me trouve la bonne réponse.
(function() { var aa= document.getElementsByTagName("input"); for (var i =0; i < aa.length; i++){ if (aa[i].type == 'checkbox') aa[i].checked = true; } })()
Les navigateurs les plus récents peuvent utiliser document.querySelectorAll
(function() { var aa = document.querySelectorAll("input[type=checkbox]"); for (var i = 0; i < aa.length; i++){ aa[i].checked = true; } })()
À partir des outils de la console Dev (F12), vous pouvez utiliser le sélecteur de requête comme vous l'utilisez dans javascript ou le code jQuery.
'$$' – signifie sélectionner tous les éléments. Si vous utilisez '$', vous n'obtiendrez que le premier élément.
Donc, pour sélectionner toutes les cases à cocher, vous pouvez suivre
$$('input').map(i => i.checked = true)
ou
$$('input[type="checkbox"').map(i => i.checked = true)
Vous l'avez presque correct. Utilisez juste
aa[i].checked = "checked";
Dans la boucle.
À savoir, vous devez vous assurer que:
"checked"
est une chaîne, pas un identifiant de variable, et aa.elements
directement sur aa
, pas aa.elements
, qui n'existe pas Si vous êtes ici pour le one-liner rapide:
var aa = document.getElementsByTagName("input"); for (var i = 0; i < aa.length; i++) aa[i].checked = true;
Essaye ça 🙂
(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); }); })()
Essayez setAttribute
.
(function() { var aa = document.getElementsByTagName("input"); for (var i =0; i < aa.length; i++){ aa.elements[i].setAttribute('checked', 'checked'); } })();
Modifier: ajoutés parens pour exécuter la fonction immédiatement.
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; } } }
Si vous le souhaitez à partir des outils du développeur, supprimez le paramètre de la fonction et mettez la valeur comme "vraie" ou "fausse" au lieu de "bx.checked"