Разница между innerText и html

В чем разница между innerText, text() и html()?

Ответ 1

innerText (или text(), если вы используете jQuery) не содержит HTML-тегов. Итак, если у вас есть div, который содержит:

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

innerText/text() вернет

View my profile

в то время как html() вернет

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

Как указывает dcneiner, html()/text() являются свойствами jQuery (и поддерживаются в браузерах), в то время как innerText не реализуется всеми браузерами (хотя он работает в самых последних версиях IE, Safari и Chrome).

В принципе, вы захотите использовать text() isntead of innerText, когда это возможно. См. сообщение dcneiner (или jQuery docs) для некоторых других вещей, которые делают text() удивительным.

Ответ 2

Различие заключается в том, что innerText является единственным свойством только для объекта DOM, а html() является функцией объекта jQuery.

Однако, если вы сравнивали text() и html(), то разница в том, что text() удаляет весь HTML из содержимого элемента перед возвратом, а html() включает в себя HTML.

Кроме того, text() возвращает текст всех совпадающих элементов и объединяет их вместе:

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

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

Но html() возвращает только первые совпадающие элементы innerHTML:

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

Последнее замечательное дело в том, что .text() авто экранирует весь HTML:

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