45

Google Chromeを使用すると、オブジェクトがconsole.logの場合は、コンソールの要素を調べることができます。例:HTML要素をJavaScriptオブジェクトとしてログに記録するにはどうすればよいですか?

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

これは、隣の矢印をクリックして検査することができるObjectを印刷します。

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

これは、隣にある矢印をクリックして検査することができる<html></html>が出て出力します。しかし、私はのHTMLElementをログに記録しようとします。要素のDOMの代わりにJavaScriptオブジェクト(メソッドとフィールドを使用)を表示するにはどうすればよいでしょうか?

答えて

88

使用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 

これはコンソールウィンドウの外では機能しません。

+1

'console.log("%O "、document.body);'も機能します – Viney

18

これを試してみてください。

console.dir(element) 

リファレンス
[Video] Paul Irish on becoming a console power user.

+0

+1私はいつも '[[element]]'を使って配列を作成していましたので、Chromeはそれをオブジェクトとして表示するように強制されました...ありがとう! – pimvdb

+0

これはFirefoxとSafariでもうまく動作します。 – Ross

+0

すばらしい簡単な答え。 '最古の'並べ替えは、他のものの後に髪の毛で来たので、受け入れ、多くのありがとう! –