2012-01-03 8 views
29

Non sono abbastanza abile nel manovrare jQuery, ed è arrivato ad un punto che ho bisogno di eseguire il debug di un programma che è stato trasmesso da me senza una documentazione.dump oggetto jquery in una casella di avviso

Ho questo var a, un oggetto, che voglio veramente conoscere il contenuto della sua collezione. Nella mia mente ho bisogno di una funzione come foreach() in PHP per iterare su questa variabile oggetto. Alla ricerca, finisco per usare jQuery.each(). Ora posso chiaramente scorrere e vedere cosa c'era dentro var a.

Tuttavia, è stato un po 'fastidioso per avvisare una volta ogni valore sulla var a. Cosa voglio sapere se è possibile visualizzare tutti i contenuti in una sola finestra di avviso?

Ecco il mio codice:

$.each(a, function(index, value) { 
alert(index + ': ' + value); 
}); 

Il var un contiene informazioni quali:

creationdate: date_here 
id: SWFUpload 
modificationdate: date_here 
type: .jpg 
index: 0 
name: uploaded_filename.jpg 
size: size_in_bytes 

BTW: Il var un si chiama tramite script di upload di file.

+1

puoi usare 'stringfy' o' console.log() ' – diEcho

+0

puoi mostrarci cosa' a' avere ?? – diEcho

+0

@diEcho - Ho modificato la mia domanda. –

risposta

33

Perché non basta accumulare i valori in un array, quindi visualizzare l'intero array (per esempio, usando JSON)? Esempio:

var acc = [] 
$.each(a, function(index, value) { 
    acc.push(index + ': ' + value); 
}); 
alert(JSON.stringify(acc)); 

In ogni caso, io suggerirei utilizzando uno strumento di debug come Firebug. Quindi puoi semplicemente usare console.log (a) ed essere in grado di navigare liberamente attraverso i campi degli oggetti.

+0

Grande. Come quello che sto cercando. Anche se l'output è stato un po 'incomprensibile da guardare, comunque va bene. Grazie! –

+1

È difficile ottenere la console, ad esempio quando si esegue il debug di un'applicazione mobile iOS7 su un dispositivo reale, quindi questo aiuta. – EralpB

28

In Firefox si potrebbe provare:

 

alert(yourObject.toSource()); 
 

Oppure si potrebbe usare un po 'di plug-in: Vedi: jQuery Dump Plugin

+0

Grande suggerimento per quanto riguarda jQuery Dump Plugin. –

+0

Bello! Non sapevo assolutamente di 'toSource()' in FF. +1 –