45

Utilizando Google Chrome, si console.log un objeto, le permite inspeccionar el elemento en la consola. Por ejemplo:¿Cómo puedo registrar un elemento HTML como un objeto JavaScript?

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

Esto muestra Object que puede ser inspeccionado por hacer clic en las flechas al lado de él. Sin embargo, si trato de registrar un HTMLElement:

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

Esto muestra <html></html> que puede ser inspeccionado por hacer clic en las flechas al lado de él. Si quisiera ver el objeto JavaScript (con sus métodos y campos) en lugar de solo el DOM del elemento, ¿cómo lo haría?

Respuesta

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 

Si estás dentro de la consola ya, usted simplemente puede escribir en lugar de dirconsole.dir:

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

Para enumerar simplemente los diferentes nombres de propiedades (sin los valores), se puede usar Object.keys:

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

A pesar de que no hay ningún método público console.keys(), si está dentro de la consola ya , simplemente puede ingresar:

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

Sin embargo, esto no funcionará fuera de la ventana de la consola.

+1

'console.log ("% O ", document.body);' funciona también – Viney

18

probar esto:

console.dir(element) 

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

+0

+1 Siempre estaba usando '[[element]]' para crear una matriz, por lo que Chrome se vio obligado a mostrarla como un objeto ... ¡Gracias! – pimvdb

+0

Esto también funciona en Firefox y Safari. – Ross

+0

Gran respuesta directa. Por 'más viejo' tipo vino en un pelo después del otro, de ahí la aceptación, pero muchas gracias! –

Cuestiones relacionadas