45

Utilizzando Google Chrome, se si è un oggetto console.log, consente di ispezionare l'elemento nella console. Ad esempio:Come posso registrare un elemento HTML come oggetto JavaScript?

var a = { "foo" : "bar", "whiz" : "bang" }; 
console.log(a); 

Questo stampa Object ispezionabile cliccando sulle frecce accanto ad essa. Se invece provo a registrare un HTMLElement:

var b = goog.dom.query('html')[0]; 
console.log(b); 

Questo stampa <html></html> ispezionabile facendo clic sulle frecce accanto ad essa. Se volessi vedere l'oggetto JavaScript (con i suoi metodi e campi) invece del solo DOM dell'elemento, come dovrei farlo?

risposta

88

Uso console.dir:

var element = document.documentElement; // or any other element 
console.log(element); // logs the expandable <html>…</html> 
console.dir(element); // logs the element’s properties and values 

Se sei all'interno della console già, si potrebbe semplicemente digitare dir invece di console.dir:

dir(element); // logs the element’s properties and values 

Per elencare semplicemente i diversi nomi di proprietà (senza i valori), è possibile utilizzare Object.keys:

Object.keys(element); // logs the element’s property names 

Anche se non c'è alcun metodo pubblico console.keys(), se sei dentro la console già , è sufficiente inserire:

keys(element); // logs the element’s property names 

Tuttavia, questo non funzionerà al di fuori della finestra della console.

+1

'console.log ("% O ", document.body);' funziona anche – Viney

18

provare questo:

console.dir(element) 

Riferimento
[Video] Paul Irish on becoming a console power user.

+0

+1 Usavo sempre '[[elemento]]' per creare un array in modo che Chrome fosse costretto a visualizzarlo come oggetto ... Grazie! – pimvdb

+0

Anche in Firefox e Safari. – Ross

+0

Ottima risposta semplice. Per "più vecchio" tipo è entrato in un capello dopo l'altro, quindi l'accettazione, ma molte grazie! –