2013-05-24 4 views
6

Я получаю тот же результат от обоих методов, но не уверен, почему. Исследование SO сообщает мне следующее:текст vs innerHTML в JQuery

.text() возвращает JUST текст этого элемента и все его дочерние элементы, где asinnerHTML возвращает весь HTML в этом элементе.

Однако дальнейшие исследования говорят мне об этом: Реальная проблема заключается в том, что text() и 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. Две совершенно разные вещи. Один реализован браузером, другой реализован jQuery. У каждого из них также есть разные цели. –

+3

добавьте элемент в ячейку, и вы увидите разницу –

ответ

6

.text() возвращает строковое представление всех текстовых узлов в этом элементе, а .html() даст вам представление всех узлов.

Смежные вопросы