J'ai une liste de cases à cocher qui ont toutes un identifiant unique. Lorsqu'un bouton est enfoncé, il doit transmettre cette liste d'identifiants au back-end. Je peux obtenir les identifiants en utilisant la méthode .getAttribute mais cela inclut d'autres informations dont je n'ai pas besoin. Existe-t-il un moyen d'obtenir UNIQUEMENT l'identifiant de la case à cocher sélectionnée?
Voici le code de base qui se déclenche lorsque vous cliquez sur le bouton:
$('input[name = "dCodes"]:checked').each(function () { selectedCodes.push($(this.getAttribute('id'))); });
Voici ce que le tableau selectedCodes contient après avoir cliqué sur le bouton:
3 Réponses :
Vous devez utiliser selectedCodes.push ($ (this) .attr ('id')));
pour obtenir uniquement la valeur d'id dans ce tableau.
Pourquoi créer un objet jQuery alors que vous pouvez obtenir l ' id
à partir de l'objet existant?
@RoryMcCrossan car la question ne balise pas javascript
et OP est plus focalisé sur jQuery
Eh bien, jQuery est Javascript, et créer un objet entier juste pour obtenir une seule propriété (à laquelle vous avez déjà accès) est redondant
@RoryMcCrossan ne pourrait pas être un extrait de beaucoup de code, vous ne pouvez pas juger de cette façon.
Si vous voulez seulement la chaîne id
, ne poussez pas un objet jQuery dans le tableau:
let selectedCodes = $('input[name="dCodes"]:checked').map(function () { return this.id; }).get();
Remarque que cela peut être simplifié pour simplement récupérer la propriété id
directement à partir de la référence this
sans avoir besoin de getAttribute()
:
let selectedCodes = []; $('input[name="dCodes"]:checked').each(function () { selectedCodes.push(this.id); });
Pour aller plus loin encore, vous pouvez supprimer le besoin de la boucle explicite each ()
et de la déclaration de tableau séparé en utilisant map ()
de jQuery méthode:
let selectedCodes = []; $('input[name="dCodes"]:checked').each(function () { selectedCodes.push(this.getAttribute('id')); });
Merci, c'était exactement ce dont j'avais besoin. J'ai utilisé votre solution finale en utilisant la méthode map ()
ce
doit être inclus.
selectedCodes.push($(this).attr('id'));
Pourquoi créer un objet jQuery alors que vous pouvez obtenir l ' id
à partir de l'objet existant?
Partager un exemple
html