Учитывая следующий фрагмент HTML:
<p id="para">hello <world></p>
jQuery .text()
и .html()
методы возвращают разные значения...
var text = $('#para').text(); // gives 'hello <world>'
var html = $('#para').html(); // gives 'hello <world>'
В документации к jQuery указано
Результатом метода
.text()
является строка, содержащая комбинированный текст всех согласованных элементов.
и...
В HTML-документе мы можем использовать
.html()
для получения содержимого любого элемента. Если выражение селектора совпадает с более чем одним элементом, возвращается только первый HTML-контент.
Но эта конкретная разница с <
и >
, кажется, нигде не документирована.
Может ли кто-нибудь прокомментировать обоснование этой разницы?
Изменить
Немного больше исследований свидетельствует о том, что значения .text()
и .html()
соответствуют тем, что указаны в нативных JavaScript innerText
и innerHTML
, соответственно (когда селектор jQuery вернул хотя бы один элемент). Опять же, это не отражено в документации jQuery, поэтому я не уверен на 100%, если это наблюдение сохраняется во всех сценариях. Чтение через источника jQuery показывает, что это не то, что на самом деле происходит под капотом.