Comment implémenter la sélection totale en JavaScript : 1. Créez un formulaire via HTML et CSS ; 2. Utilisez les méthodes DOM pour obtenir les éléments "d'entrée" respectivement pour la sélection totale et la sélection unique 3. Définissez une variable isAllChecked ; 4. Modifiez la valeur de isAllChecked Assigned au bouton Sélectionner tout.
L'environnement d'exploitation de cet article : système Windows 7, javascript version 1.8.5, ordinateur Dell G3.
Comment tout sélectionner en javascript ?
Utilisez JS pour implémenter la sélection complète et la sélection inverse dans le formulaire
C'est aussi un exercice, qui consiste à tout sélectionner dans le panier général du e-commerce, et à ajouter une sélection inverse (il semble qu'il y ait il n'y a pas beaucoup de paniers avec fonction de sélection inverse, mais c'est une ressource Windows. Le gestionnaire a une fonction de sélection inverse)
Lorsque les 4 lignes de produits sont vérifiées, " Sélectionner tout" sera automatiquement coché ; lorsqu'il y a des produits qui ne sont pas cochés, "Sélectionner tout" est automatiquement annulé.
Lorsque les 4 lignes de produits ne sont pas cochées, cochez « Sélectionner tout » pour que les 4 lignes de produits soient cochées.
Lorsque « Sélectionner tout » est coché, décochez « Sélectionner tout » et tous les produits le seront. être décochée.
Après avoir trié les exigences, nous utilisons d'abord HTML et CSS pour dessiner ce formulaire :
<html> <head> <meta charset="utf-8"> <title>全选2</title> <style type="text/css"> .wrap{ margin-left: 500px; margin-top: 200px; } table{ border-collapse:collapse; } th{ border:1px solid black; height: 45px; } td{ border:1px solid black; text-align: center; font-weight: bold; } </style> </head> <body> <div class="wrap"> <table cellspacing="0" cellpadding="14"> <thead> <tr> <th> <input type="checkbox" id="selectAll" onclick="funcAll()"> </th> <th>商品</th> <th>价格</th> </tr> </thead> <tbody id="j_tb"> <tr> <td> <input type="checkbox" class="selectOne" onclick="funcOne()"> </td> <td>iPhone X</td> <td>8000</td> </tr> <tr> <td> <input type="checkbox" class="selectOne" onclick="funcOne()"> </td> <td>iPad pro</td> <td>5000</td> </tr> <tr> <td> <input type="checkbox" class="selectOne" onclick="funcOne()"> </td> <td>iPad air</td> <td>2000</td> </tr> <tr> <td> <input type="checkbox" class="selectOne" onclick="funcOne()"> </td> <td>Apple watch</td> <td>2000</td> </tr> </tbody> </table> <input type="button" id="backwardOption" value="反选" onclick="funcBackward()"> </div> </body> </html>
Ici, j'ai nommé la fonction de l'événement de clic de souris et je l'appelle "funcAll". ()". Celui sélectionné s'appelle "funcOne()", celui inverse s'appelle "funcBackward()". La partie CSS ajoute principalement des bordures au formulaire et mélange en même temps les bordures à la jonction, ce qui est fondamentalement l'apparence la plus simple.
Parlons d'abord des exigences 2 et 3. La logique est relativement simple :
Utilisez la méthode DOM pour obtenir les éléments "d'entrée" respectivement pour la sélection complète et la sélection unique. S'il n'y en a qu'un pour toute la sélection, utilisez simplement getElementById. () (déjà défini l'identifiant à l'avance), et il y a quatre sélections radio. Utilisez getElementByClassName() pour l'obtenir (la classe a été définie à l'avance, bien sûr, ce que vous obtenez est un tableau).
Attribuez les éléments obtenus aux variables, puis utilisez une boucle for pour parcourir le tableau et attribuez l'attribut vérifié de la variable qui sélectionne tout à l'attribut vérifié de chaque variable sélectionnée une seule fois.
À ce stade, 2 et 3 ont été résolus en même temps. Le code est le suivant :
function funcAll(){ var selectAll = document.getElementById('selectAll'); var selectOnes = document.getElementsByClassName('selectOne'); for (var i = 0; i < selectOnes.length; i++) { //循环遍历,把全选框的值赋给每个单选框 selectOnes[i].checked = selectAll.checked; } }
Parlons ensuite du point 1 : "Lorsque les 4 lignes de produits sont cochées, "Sélectionner tout" est automatiquement sélectionné. coché ; lorsqu'il y a des produits. Lorsqu'il n'est pas coché, "Sélectionner tout" est automatiquement annulé. "
Ici, l'état de "Sélectionner tout" est similaire à la surveillance de tous les autres boutons. Une fois qu'il y a un changement, il changera en conséquence. . Cette logique doit donc être écrite dans l’événement de clic de souris du bouton radio de chaque ligne de produits.
J'ai configuré une variable isAllChecked comme pont. L'état initial définit isAllChecked comme vrai et parcourt chaque bouton radio une fois qu'il est détecté qu'un bouton radio n'est pas coché, définissez isAllChecked sur false, sortez de la boucle, et attribuez la valeur de isAllChecked au bouton Sélectionner tout.
De cette façon, tant qu'un bouton radio n'est pas sélectionné, tous les boutons radio sélectionnés deviendront également désélectionnés. , le code est le suivant :
function funcOne(){ var selectAll = document.getElementById('selectAll'); //函数作用域,所以得再定义一遍 var selectOnes = document.getElementsByClassName('selectOne'); var isAllChecked = true; //定义一个变量作为桥梁来控制全选按钮 for (var i = 0; i < selectOnes.length; i++) { if (selectOnes[i].checked === false) { isAllChecked = false; break; } } selectAll.checked = isAllChecked; }
- Cliquez sur le bouton de sélection inverse, et le statut de tous les boutons radio sera inversé : ceux sélectionnés deviennent désélectionnés, et ceux non sélectionnés deviennent sélectionnés
- Cliquez sur la sélection inverse, et le résultat est : Il est toujours possible de rendre la sélection cohérente avec la logique précédente.
L'élément 1 est en fait très simple à mettre en œuvre. Lorsque vous cliquez sur le bouton Inverser, parcourez les 4 boutons radio et inversez l'attribut coché correspondant à chaque élément.
Cependant, la surveillance de sélection de tous les éléments uniques que nous avons implémentée précédemment est en fait implémentée dans l'événement de clic de chaque bouton radio, c'est-à-dire que si nous ne modifions pas l'état du bouton radio en cliquant sur le bouton radio, en sélectionnant tout, on ne peut en fait pas surveiller la situation globale.
Ainsi, nous pouvons écrire le code de surveillance dans la fonction de clic de souris de sélection inversée. Le code final est le suivant :
var selectAll = document.getElementById('selectAll'); //函数作用域,所以得再定义一遍 var selectOnes = document.getElementsByClassName('selectOne'); for (var i = 0; i < selectOnes.length; i++) { selectOnes[i].isAllChecked = !selectOnes[i].checked; } function funcOne(){}; var isAllChecked = true; //定义一个变量作为桥梁来控制全选按钮 for (var i = 0; i < selectOnes.length; i++) { if (selectOnes[i].checked === false) { isAllChecked = false; break; } } selectAll.checked = isAllChecked; }
L'effet final est le suivant :
Apprentissage recommandé : "Tutoriel de base js 》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!