web-dev-qa-db-ja.com

jQuery:print_r()は同等のものを表示しますか?

可能性のある複製:
JavaScriptデータのフォーマット/プリティプリンター

FireBugでフォーマットされていないjson blobを見ることに少しうんざりしています。

JQuery用のPHPのprint_r()に相当するものを知っている人はいますか?

オブジェクトまたは配列から再帰的に表示文字列を作成し、迅速なデバッグのためにページに表示できるもの

ありがとう!

64
Eli

console.log は、デバッグ時に最もよく使用するものです。

これを見つけることができました jQuery extension しかし。

69

非常に簡単に reflection を使用して、すべてのプロパティ、メソッド、および値をリストできます。

Geckoベースのブラウザーの場合、.toSource()メソッドを使用できます。

var data = new Object();
data["firstname"] = "John";
data["lastname"] = "Smith";
data["age"] = 21;

alert(data.toSource()); //Will return "({firstname:"John", lastname:"Smith", age:21})"

しかし、Firebugを使用しているので、なぜconsole.logを使用しないのですか?

44
CMS

次のようなものはどうですか:

<script src='http://code.jquery.com/jquery-latest.js'></script>

function print_r(o){
return JSON.stringify(o,null,'\t').replace(/\n/g,'<br>').replace(/\t/g,'&nbsp;&nbsp;&nbsp;'); }
16

あなたもできる

console.log("a = %o, b = %o", a, b);

ここで、aとbはオブジェクトです。

9
Bill Zeller

と同等のjQueryプラグインを作成しました

<pre>
<?php echo print_r($data) ?>
</pre>

https://github.com/tomasvanrijsse/jQuery.dump からダウンロードできます

6
Tomas

一番上のコメントにはFirebugのconsole.logドキュメントへのリンクが壊れているため、ここに Consoleに関するWiki記事へのリンク があります。私はそれを使い始め、PHPのprint_r()の代替として非常に満足しています。

また、Firebugでは、手動でログを記録しなくても、返されたJSONオブジェクトにアクセスできます。

  • コンソールでAJAX応答のURLを確認できます。
  • 三角形をクリックして応答を展開し、詳細を表示します。
  • 詳細の[JSON]タブをクリックします。
  • 応答データが展開三角形で整理されて表示されます。

このメソッドは、データを取得するためにさらに2、3回クリックしますが、実際のjavascriptに追加する必要はなく、Firebugでコンソールからフォーカスを移動しません(console.logを使用すると、firebugのDOMセクションへのリンクが作成されます) 、その後コンソールに戻るように強制する)。

私のお金のために、ログをいじるのではなく、検査したいときは特にクリックを2回クリックした方がいいでしょう。

5
jerclarke
$.each(myobject, function(key, element) {
    alert('key: ' + key + '\n' + 'value: ' + element);
});

これは私のために仕事をします。 :)

5
Gogol