2009-08-17 10 views
15

Je sais ce qui est probablement une question simple, mais je tente un coup sec dans un plugin & js est pas mon expertise et je me suis perplexe sur la façon de faire ce qui suit:Pousser la valeur du Var dans un tableau

J'ai un tableau qui peut contenir un certain nombre de valeurs ($ fruit) en fonction de ce qu'un utilisateur a entré. Je veux ajouter une autre variable au tableau qui n'est pas déterminée par l'entrée manuelle.

Je sais que push devrait s'appliquer ici mais cela ne semble pas fonctionner, pourquoi la syntaxe suivante ne fonctionne pas?

var veggies = "carrot"; 
var fruitvegbasket = $('#fruit').val(); 
fruitvegbasket.push(veggies); 

mise à jour: Je l'ai fait travailler ceci:

var fruit = $('#fruit').val(); 
var veggies = "carrot"; 
fruitvegbasket = new Array(); 
fruitvegbasket.push(fruit+","+veggies); 

pas sûr que c'est la meilleure façon de le faire, mais il fonctionne. Merci a tous!

Répondre

32

Du haut de ma tête, je pense qu'il devrait se faire comme ceci:

var veggies = "carrot"; 
var fruitvegbasket = []; 
fruitvegbasket.push(veggies); 
6

jQuery est pas la même chose comme un tableau. Si vous voulez ajouter quelque chose à la fin d'un objet jQuery, utilisez:

$('#fruit').append(veggies); 

ou pour l'ajouter à la fin d'une valeur de forme comme dans votre exemple:

$('#fruit').val($('#fruit').val()+veggies); 

Dans votre cas, fruitvegbasket est une chaîne qui contient la valeur actuelle de #fruit, pas un tableau.

jQuery (jquery.com) permet la manipulation du DOM, et la fonction spécifique que vous avez appelé val() retourne l'attribut value d'un élément input comme une chaîne. Vous ne pouvez pas pousser quelque chose sur une chaîne.

+0

-vous pas besoin de ' '' +' 'avant veggies'? – Dan

1

.val() ne renvoie pas un tableau d'un élément DOM: $('#fruit') va trouver l'élément dans le document avec un ID de #fruit et obtenir sa valeur (s'il a une valeur).

Questions connexes