How can I log an HTML element as a JavaScript object?

JavascriptGoogle ChromeGoogle Closure-LibraryDeveloper Tools

Javascript Problem Overview


Using Google Chrome, if you console.log an object, it lets you inspect the element in the console. For example:

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

This prints out Object which can be inspected by clicking on arrows next to it. If however I try to log an HTMLElement:

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

This prints out <html></html> which can not be inspected by clicking on arrows next to it. If I want to see the JavaScript object (with its methods and fields) instead of just the DOM of the element, how would I do that?

Javascript Solutions


Solution 1 - Javascript

Use 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

If you’re inside the console already, you could simply type dir instead of console.dir:

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

To simply list the different property names (without the values), you could use Object.keys:

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

Even though there’s no public console.keys() method, if you’re inside the console already, you could just enter:

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

This won’t work outside the console window, though.

Solution 2 - Javascript

try this:

console.dir(element)

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

Solution 3 - Javascript

Browser print only html part, you can put the element in a object to see dome structure.

console.log({element})

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBen FlynnView Question on Stackoverflow
Solution 1 - JavascriptMathias BynensView Answer on Stackoverflow
Solution 2 - JavascriptRossView Answer on Stackoverflow
Solution 3 - JavascriptNavid ShadView Answer on Stackoverflow