Ottengo lo stesso risultato da entrambi i metodi, ma non sono sicuro del perché. La ricerca su SO mi dice questo:text vs innerHTML in JQuery
.text() restituisce SOLO il testo di quell'elemento e tutti i suoi elementi discendenti, dove come .innerHTML restituisce tutto l'HTML in quell'elemento.
tuttavia, ulteriori ricerche mi dicono questo: Il vero problema è che text() e innerHTML operano su oggetti completamente diversi.
Posso ottenere qualche chiarimento?
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'
Sì, .text è un metodo di una raccolta jQuery, mentre .innerHTML è un metodo di nodi html. Due cose completamente diverse. Uno è implementato dal browser, l'altro è implementato da jQuery. Ognuno ha anche scopi diversi. –
aggiungi un elemento alla cella e vedrai la differenza –