2013-06-03 10 views
13

私はjqueryオブジェクトのログをコンソールに出力します。なぜGoogle ChromeはjQuery経由でconsole.log()の出力が異なるのですか?

var s = $("#item"); 
console.log(s); 

私は(1ヶ月前程度)の前に覚えている。この

[div#item, context: document, selector: "#item", jquery: "1.9.1", constructor: function, init: function…] 

のようなものを取得し、私のような何かを得るでしょう:

[<div id="item">pas</div>] 

はクロム自体の変化ですか?または、jqueryに変更がありましたか?または私は実際に私が読んで、私はこの上にカーソルを移動し、それがページ上でマークすることができ、この第二の出力は、はるかに簡単に見つける出力表情が違っ

作るために何かをしました。今度はあまりにも多くの情報を読むのは難しいです

+3

* * jQueryと思われる:[demo](http://jsfiddle.net/davidThomas/9prm9/);今は考えていますが、DOMノードや要素ではなく、Chromeがオブジェクトを記録する方法の違いに過ぎません。 –

+0

はい、それはプレーンなjavascriptとは異なって動作するようです。これは本当に便利です。 – Zokora

+1

私はフィドルでjQueryバージョンを変更しようとしましたが、出力を大幅に変更しませんでした(主な違いは、jQueryオブジェクトに1.9より前のjquery:プロパティがないことです)。私はOPが考えている違いは、コンソールのjQueryオブジェクトを評価し、 'console.log'を使うことです。 – Barmar

答えて

0

コンソールでjQueryオブジェクトを評価してconsole.log()と表示することの違いは、気づいていると思います。 David Thomasのfiddleを使用して、console.logステートメントにブレークポイントを設定します。それがブレークポイントで停止すると、コンソールに$sを入力して、あなたは

[<div id="item">pas</div>] 

が次に続け参照してくださいよ、あなたはconsole.log()によって印刷された冗長なオブジェクトが表示されます。

jQueryやChromeがこの違いを引き起こしているかどうかはわかりません。 $sと入力したときの出力は$s.toArray()のようですが、console.log()は実際のjQueryオブジェクトを示しています。

これは新しい動作ではないことを証明する - 11月の重複した質問にリンクしました。

0
var s = $("#item").html(); 
console.log(s) 
+1

これはあなたに '[

pas
]' – zzlalani

+0

http://stackoverflow.com/questions/13974740/how-do-i-console-log-a-jquery-dom-element-inではなく 'pas'を与えます-chrome –

+0

これは完全に助けてくれることを願っています –

-1
if div value printed on div .. then plz menstion html(). 

    var s = $("#item").html(); 

    console.log(s); 
0

しようとは...

var s = $("<div>").append($("#item").clone()).html(); 

console.log(s); 

$(s).remove(); 

それはきれいな形ではないのですが、結果はであるあなたが探しているものと私はあなたが良い機能を考え出すことができ確信していますそのために...

私はdivを作成して、#itemのコピーを入れ、#item要素全体を表示するためにdivのinnerHTMLをコンソールに吐き出します。 (#itemのinnerHTMLだけではありません) その後、私はクリーンアップするためにsを破壊します。

0

はいあなたはこのようにし

var s = $("#item"); 
console.log(s); 

console.logをしようとした場合、彼らは今バージョンでは、DOMオブジェクトと1.9.1

http://jsfiddle.net/5HJ3L/1/

を扱っているか確認し、jQueryを使って変更があるかもしれません出力は次のようになります

[div#item, context: document, selector: "#item", jquery: "1.9.1", constructor: function, init: function…] 
0: div#item 
context: document 
length: 1 
selector: "#item" 
__proto__: Object[0] 

あなたがそれをチェックすると密接にあなたがキー0で上記の配列に必要な出力がありますので、次の行の出力は

console.log(s[0]); 

出力されます:あなたはそれをしようとした場合

<div id="item">pas</div> 

jqueryのことなく、出力は、あなたが必要とされている1つになります

var e = document.getElementById('item'); 
console.log(e); 

出力:

<div id="item">pas</div> 

PS:これは、彼らがgoogle-chrome

補正によって取引になります方法を示すことが、jqueryのに対して提案ではありません:はまた、私は問題の出力言及は方法のに対しarray形であることに注意してください提案したのはstring

0

jqueryではなくDOM要素を送信しているコンソールで予想される結果が得られました。

console.log($("div")[0]) 
関連する問題