> var theContents = $('<p id="thingy">Here is some <em>emphasized</em> text!</p>').contents();
theContents
は次のようになります配列です
> theContents
["Here is some ", <em>emphasized</em>, " text!"]
これまでのところとても良いです。それは配列のようです。要素0
と2
は文字列であり、要素1
はjQueryオブジェクトです。 I出力ちょうど最初の要素、私の推測を確認しているように思われる場合:
> theContents[0]
"Here is some "
私は別の文字列でそれを連結しようとする場合は、私はいくつかの理解を欠いていていることがわかり:
> 'Hello! ' + contents[0];
"Hello! [object Text]"
その変数は文字列のように見えますが、実際には何らかのオブジェクトです。そのため、真ん中のjQueryオブジェクトは通常のオブジェクトとして表示されません。生のマークアップとして表示されます。
Another questionも同じ問題を参照していますが、実際には説明しません。私は実際の問題を解決するためにcontents[0].textContent
を使用することができますが、それでも私はここで何が起こっているのかを正確に理解する助けにはなりません。誰かが私に詳細を説明することはできますか?
+1:簡単なデモンストレーション:http://jsfiddle.net/fwysq/2/ –