45

Sử dụng Google Chrome, nếu bạn console.log một đối tượng, nó cho phép bạn kiểm tra phần tử trong bảng điều khiển. Ví dụ:Làm cách nào để tôi có thể đăng nhập một phần tử HTML dưới dạng đối tượng JavaScript?

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

Điều này in ra Object có thể được kiểm tra bằng cách nhấp vào mũi tên bên cạnh. Tuy nhiên, nếu tôi cố gắng ghi lại một phần tử html:

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

này in ra <html></html> mà có thể được kiểm tra bằng cách nhấp vào mũi tên bên cạnh nó. Nếu tôi muốn xem đối tượng JavaScript (với các phương thức và trường của nó) thay vì chỉ là DOM của phần tử, tôi sẽ làm điều đó như thế nào?

Trả lời

88

Sử dụng 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 

Nếu bạn đang ở trong giao diện điều khiển đã có, bạn chỉ có thể gõ dir thay vì console.dir:

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

Để chỉ cần liệt kê tên thuộc tính khác nhau (không có giá trị), bạn có thể sử dụng Object.keys:

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

Mặc dù không có console.keys() phương pháp nào, nếu bạn đang ở trong giao diện điều khiển đã , bạn chỉ có thể nhập:

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

Điều này sẽ không hoạt động bên ngoài cửa sổ bảng điều khiển.

+1

'console.log ("% O ", document.body);' cũng hoạt động – Viney

18

thử điều này:

console.dir(element) 

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

+0

+1 Tôi luôn sử dụng '[[element]]' để tạo mảng để Chrome bị buộc phải hiển thị nó làm đối tượng ... Cảm ơn! – pimvdb

+0

Điều này hoạt động trong Firefox và Safari quá btw. – Ross

+0

Câu trả lời đơn giản tuyệt vời. Bằng cách sắp xếp 'lâu đời nhất' đến trong một mái tóc sau khi một trong những khác, do đó chấp nhận, nhưng cảm ơn nhiều! –