2013-05-24 37 views
6

Tôi nhận được kết quả tương tự từ cả hai phương pháp, nhưng không chắc chắn lý do tại sao. Nghiên cứu về SO cho tôi biết điều này:văn bản vs innerHTML trong JQuery

.text() trả về JUST văn bản của phần tử đó và tất cả các phần tử con cháu của nó, trong đó .innerHTML trả về tất cả HTML trong phần tử đó. Tuy nhiên, nghiên cứu thêm cho tôi biết điều này: Vấn đề thực sự là văn bản() và innerHTML hoạt động trên các đối tượng hoàn toàn khác nhau.

Tôi có thể giải thích rõ không?

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

Có, .text là một phương thức của bộ sưu tập jQuery, trong khi .innerHTML là phương thức của các nút html. Hai điều hoàn toàn khác nhau. Một được thực hiện bởi trình duyệt, cái còn lại được jQuery thực hiện. Họ cũng có mục đích khác nhau. –

+3

thêm một số phần tử vào ô và bạn sẽ thấy sự khác biệt –

Trả lời

6

.text() sẽ trả về một chuỗi đại diện của tất cả các nút văn bản trong yếu tố đó trong khi .html() sẽ cung cấp cho bạn trình bày của tất cả các nút.