J'ai une boucle qui crée 20 cases à cocher dans la même page (cela crée des formulaires différents). Je souhaite via les outils de développement Chrome pour exécuter un JavaScript sans utiliser de bibliothèque qui [~ # ~] cochez [~ # ~] toutes cases à cocher à la fois.
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 aucune n'a fonctionné pour moi, je serais heureux si quelqu'un pouvait me trouver 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;
}
})()
Avec les navigateurs à jour, vous pouvez 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 développement de la console (F12), vous pouvez utiliser le sélecteur de requête comme vous l'utilisez dans le code javascript ou jQuery.
"$$" - signifie sélectionner tous les articles. Si vous utilisez '$' à la place, vous n'obtiendrez que le premier élément.
Donc, pour sélectionner toutes les cases à cocher, vous pouvez faire après
$$('input').map(i => i.checked = true)
ou
$$('input[type="checkbox"').map(i => i.checked = true)
Vous l'avez presque correct. Utilisez simplement
aa[i].checked = "checked";
à l'intérieur de la boucle.
À savoir, vous devez vous assurer que:
"checked"
est une chaîne, pas un identificateur de variable, etaa
, pas aa.elements
, qui n'existe pasSi 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);
});
})()
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 de développement, supprimez le paramètre de la fonction et mettez la valeur comme "vrai" ou "faux" au lieu de "bx.checked"
Essayez setAttribute
.
(function() {
var aa = document.getElementsByTagName("input");
for (var i =0; i < aa.length; i++){
aa.elements[i].setAttribute('checked', 'checked');
}
})();
Edit: ajout de parens pour exécuter la fonction immédiatement.