2013-05-24 1 views
6

両方のメソッドから同じ結果が得られますが、その理由はわかりません。 DOMの研究では、この要素のテキストとすべての子孫要素がそのまま返されます。ここで.innerHTMLは、その要素のHTMLをすべて返します。 実際の問題は、text()とinnerHTMLがまったく別のオブジェクトで動作することです。JQueryのテキスト対innerHTML

いくつかの説明を得ることはできますか?

HTML

<table id="table2"> 
<th> Col1 </th> 
<th> Col2 </th> 
<tbody> 
<tr> 
<td id="data">456</td> 
</tr> 
</tbody> 
</table> 

jQueryの

$('td').click(function() { 
    var x=$(this).text(); 
    alert(x); //returns '456' 
}) 

var abc = document.getElementById('data'); 
var xyz = abc.innerHTML; 
    alert(xyz); //also returns '456' 
+0

はい.textはjQueryコレクションのメソッドですが、.innerHTMLはhtmlノードのメソッドです。 2つの全く異なるもの。 1つはブラウザで実装され、もう1つはjQueryで実装されます。彼らはまた、それぞれ異なる目的を持っています。 –

+3

いくつかの要素をセルに追加すると、その違いが表示されます –

答えて

6

.text().html()はあなたにすべてのノードのプレゼンテーションを与える一方で、その要素内のすべてのテキストノードの文字列表現を返します。