2009-08-17 6 views
15

So che questa è probabilmente una domanda semplice, ma sto cercando un tweak in un plugin & js non è la mia esperienza ed io ci siamo perplessi su come effettuare le seguenti operazioni:Spingendo valore di Var in un Array

Ho una matrice che può contenere un numero di valori ($ frutto) a seconda di ciò che un utente ha inserito. Voglio aggiungere un'altra variabile alla matrice che non è determinata dall'input manuale.

So che la spinta dovrebbe applicarsi qui ma non sembra funzionare, perché la seguente sintassi non funziona?

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

aggiornamento: ho capito di lavoro a fare questo:

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

non sono sicuro che è il modo migliore per farlo, ma funziona. ringrazia tutti!

risposta

32

Fuori della parte superiore della mia testa penso che dovrebbe essere fatto in questo modo:

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

jQuery non è la stessa come un array. Se si desidera aggiungere qualcosa alla fine di un oggetto jQuery, utilizzare:

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

o per aggiungere alla fine di un valore modulo, come nel tuo esempio:

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

Nel tuo caso, fruitvegbasket è una stringa che contiene il valore corrente di #fruit, non un array.

jQuery (jquery.com) consente di manipolare DOM, e la funzione specifica chiamato val() restituisce l'attributo value di un elemento input come stringa. Non puoi spingere qualcosa su una stringa.

+0

non è vero bisogno di un '', + '' prima veggies' '? – Dan

1

.val() non restituisce un array da un elemento DOM: $('#fruit') sta per trovare l'elemento nel documento con un ID di #fruit e ottenere il suo valore (se ha un valore).

Problemi correlati