2009-12-03 11 views

risposta

29

innerText (o text() se si utilizza jQuery) non include alcun tag HTML. Quindi, se si ha un div che conteneva:

View my <a href="profile.html">profile</a> 

innerText/text() sarebbero tornati

View my profile 

mentre html() sarebbe tornare

View my <a href="profile.html">profile</a> 

Come dcneiner sottolinea html()/text() sono proprietà jQuery (e supportato attraverso i browser) mentre innerText non è implementato da tutti i browser (sebbene io t funziona nelle versioni più recenti di IE, Safari e Chrome).

Fondamentalmente, si consiglia di utilizzare text() non di testo innerText quando possibile. Vedi dcneiner's post (o jQuery docs) per altre cose che rendono impressionante text().

+5

Il fatto che 'innerText' sia una proprietà di IE e non abbia nulla a che fare con jQuery significa qualcosa? :) –

+0

Grandi esempi Chris. +1 –

+0

Ottimo punto dcneiner, post aggiornato per riflettere che :). –

11

La differenza è che innerText è una proprietà IE solo su un oggetto DOM e html() è una funzione dell'oggetto jQuery.

Tuttavia, se si stavano confrontando text() e html() poi la differenza è che le strisce text() HTML dai contenuti di un elemento prima di tornare e html() include include il codice HTML.

Inoltre, text() restituirà il testo della tutti elementi corrispondenti e concatenare insieme:

<span>Hi, </span><span>how are </span><span>you?</span> 

$("span").text(); // returns: Hi, how are you? 

Ma html() servirà solo a restituire i primi elementi abbinati innerHTML proprietà:

$("span").html(); // returns: Hi, 

Un'ultima cosa interessante, è che l'escape di .text() è tutto HTML:

$("span:first").text('<a>Hi</a>'); // writes &lt;a&gt;Hi&lt;/a&gt;