Как я могу зарегистрировать элемент HTML как объект JavaScript?

Используя Google Chrome, если вы console.log объект, он позволяет вам проверять элемент в консоли. Например:

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

Отпечатает Object, который можно проверить, нажав на стрелки рядом с ним. Если, однако, я пытаюсь зарегистрировать HTMLElement:

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

Отпечатает <html></html>, который можно проверить, нажав на стрелки рядом с ним. Если бы я хотел увидеть объект JavaScript (с его методами и полями), а не только DOM этого элемента, как бы это сделать?

Ответ 1

Используйте 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

Если youre внутри консоли уже, вы можете просто ввести dir вместо console.dir:

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

Чтобы просто перечислить разные имена свойств (без значений), вы можете использовать Object.keys:

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

Несмотря на то, что нет общедоступного метода console.keys(), если вы уже в консоли уже можете, введите:

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

Однако это не будет работать вне консольного окна.