Что различие между текстом () и HTML () функционирует в jQuery?
$("#div").html('<a href="example.html">Link</a><b>hello</b>');
по сравнению с
$("#div").text('<a href="example.html">Link</a><b>hello</b>');
В первом примере HTML будет фактически встроен в div
, в то время как во втором примере текст будет экранирован путем замены символов, связанных с элем, на соответствующие им символьные сущности так, чтобы он отображал буквально (i. e. HTML будет отображен не отображен).
В основном, $("#div").html использует element.innerHTML для установки содержимого, и $("#div").text (возможно). использует element.textContent.
http://docs.jquery.com/Attributes/html:
Set the html contents of every matched element
http://docs.jquery.com/Attributes/text:
Similar to html(), but escapes HTML (replace "<" and ">" with their HTML
entities).
Метод text()
записывает любой HTML, который в него передается. Используйте text()
, когда вы хотите вставить HTML код, который будет виден людям, просматривающим страницу.
Технически, ваш второй пример выдает:
<a href="example.html">Link</a><b>hello</b>
который будет отображен в браузере как:
<a href="example.html">Link</a><b>hello</b>
Ваш первый пример будет отображен как фактическая ссылка и некоторый текст жирным шрифтом.
.Я думаю, разница почти понятна. И это очень тривиально.
jQuery.html()
трактует строку как HTML, jQuery.text()
трактует содержимое как text
<html>
<head>
<title>Test Page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');
});
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
Разница, которая может быть не так очевидна, описана в документации по jQuery API
В документации по . html():
Метод
.html()
недоступен в XML документах.
А в документации для .text():
Живая демонстрация на http://jsfiddle.net/hossain/sUTVg/.В отличие от
. метод html()
,.text()
может быть использован как в XML, так и в HTML документах.
$('.div').html(val) установит значения HTML для всех выбранных элементов, $('.div').text(val) установит текстовые значения для всех выбранных элементов.
API документы для jQuery.text()
API документы для jQuery.html()
Я бы предположил, что они соответствуют Node#textContent и Element#innerHTML, соответственно. (ссылки на Гекко ДОМ)
.