В чем разница между innerText, text() и html()?
Разница между innerText и 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 <a>Hi</a>