Як я можу зареєструвати елемент HTML як об’єкт JavaScript?


90

Якщо ви використовуєте 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 елемента, як би я це зробив?

Відповіді:


164

Використання 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

Якщо ви вже знаходитесь у консолі, ви можете просто ввести 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

Однак це не буде працювати за вікном консолі.


Коли я використовую console.dir () безпосередньо в консолі, це працює. Але якщо я пишу це у своєму фактичному файлі .js у VS Code, консоль chrome dev просто реєструє ім'я файлу, в якому він був записаний, та номер рядка. Ви випадково знаєте, чому?
Maiya

27

+1 Я завжди використовував [[element]]для створення масиву, щоб Chrome був змушений відображати його як об’єкт ... Дякую!
pimvdb

Чудова пряма відповідь. "Найстаріший" сорт потрапив у волосся за другим, отже, прийняти, але велике спасибі!
Бен Флінн,

Немає проблем. Я не проти, що прийнято, але прийнята відповідь повинна бути найбільш корисною для інших пізніше.
Росс

1

Браузер друкує лише HTML-частину, ви можете помістити елемент в об'єкт, щоб побачити купольну структуру.

console.log({element})
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.