В чем разница между 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>