Ответ 1
Это зависит от требуемого количества парсинга. .text()
медленнее, потому что он должен анализировать внутренний HTML и выделять любые внутренние теги. .html()
просто захватывает (или, если вы устанавливаете содержимое, уничтожает) все, что есть и что делается.
Вы можете увидеть источник для .text()
здесь (строки 123-144) и источник для .html()
здесь (строки 404-441). Когда вы просто получаете (не устанавливаете) значение, .text()
имеет рекурсию, но .html()
делает простой return elem.innerHTML;
и, следовательно, намного быстрее. Даже используя его как сеттер, .html()
проще.
Также обратите внимание: даже если вы используете оба как сеттеры и передаете только обычный текст, .html()
работает быстрее; браузеру еще нужно определить elem.nodeType
, когда вы используете .text()
. Это эффективно требует синтаксического анализа строки.