web-dev-qa-db-fra.com

Comment récupérer la valeur des éléments d'un tableau en utilisant jQuery?

J'ai plusieurs champs de saisie comme suit:

<input type="text" name="card[]">
<input type="text" name="card[]">
<input type="text" name="card[]">

Les utilisateurs peuvent ajouter ou supprimer ces champs selon leurs besoins. Le nom des champs est donc un tableau. Pour obtenir la longueur du tableau, cela fonctionne bien:

var n = $("input[name^= 'card']").length;

Comment puis-je lire la valeur du tableau?

J'ai essayé ce qui n'a pas fonctionné:

var n = $("input[name^='card']").length;
var array = $("input[name^='card']");
for(i=0;i<n;i++)
{
 card_value=  array[i].val();
 alert(card_value);
}

Cela n'a pas fonctionné non plus:

var n = $("input[name^='card']").length;

for(i=0;i<n;i++)
{
 card_value=  $("input[name^='card["+i+"]']").val();
 alert(card_value);
}

Comment puis-je lire la valeur de ce tableau? Aide!

11
Sushan Ghimire

Tu devrais utiliser:

card_value=  array.eq(i).val(); //gets jquery object at index i

ou

card_value=  array[i].value; //gets dom element at index i
12
scrappedcola

Utiliser la fonction de carte

var values = $("input[name^='card']").map(function (idx, ele) {
   return $(ele).val();
}).get();
13
Five

Les collections jQuery ont un itérateur intégré avec .each:

$("input[name^='card']").each(function () {
   console.log($(this).val());
}
7
Explosion Pills

pour lire une array, vous pouvez également utiliser la méthode "each" de jQuery:

$.each($("input[name^='card']"), function(index, val){
    console.log(index + " : " + val);
});

bonus: vous pouvez également lire des objets avec cette méthode.

la source

0
R T

Utilisez: http://jsfiddle.net/xH79d/

var n = $("input[name^='card']").length;
var array = $("input[name^='card']");

for(i=0; i < n; i++) {

   // use .eq() within a jQuery object to navigate it by Index

   card_value = array.eq(i).attr('name'); // I'm assuming you wanted -name-
   // otherwise it'd be .eq(i).val(); (if you wanted the text value)
   alert(card_value);
}

Le plus grand centre commercial

Vous pouvez simplement parcourir les éléments:

$("input[name^='card']").each(function() {
    console.log($(this).val());
});
0
PeeHaa

Votre syntaxe est incorrecte.

card_value = $(array[i]).val(); ou card_value = array[i].value;

le tableau [i] n'est pas un objet jQuery (pour une raison quelconque). 

Vérifier la console de votre navigateur peut être utile pour des choses comme celle-ci.

0
Shmiddty