jQuery中的text()和html()函数有什么区别?
$("#div").html('<a href="example.html">Link</a><b>hello</b>');
vs
$("#div").text('<a href="example.html">Link</a><b>hello</b>');
jQuery中的text()和html()函数有什么区别?
$("#div").html('<a href="example.html">Link</a><b>hello</b>');
vs
$("#div").text('<a href="example.html">Link</a><b>hello</b>');
当前回答
实际上,两者看起来有点相似,但却有很大的不同,这取决于你的用法或你想要达到的目的,
使用地点:
使用. HTML()对含有HTML元素的容器进行操作。 使用.text()修改元素的文本,通常有单独的打开和 结束标签
不使用的地方:
.text()方法不能用于表单输入或脚本。 .val()用于输入或文本区域元素。 .html()表示脚本元素的值。 从.text()中获取html内容将把html标记转换为html实体。
的区别:
.text()可以在XML和HTML文档中使用。 . HTML()仅用于HTML文档。
检查jsfiddle上的这个示例,以查看操作上的差异
例子
其他回答
基本上,$("#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).
$('.div'). HTML (val)将设置所有选定元素的HTML值,$('.div').text(val)将设置所有选定元素的文本值。
jQuery.text()的API文档
jQuery.html()的API文档
我猜它们分别对应于node# textContent和Element#innerHTML。(Gecko DOM参考)。
.text()将为您提供HTML标记之间的实际文本。例如,p标记之间的段落文本。值得注意的是,它将为您提供使用$选择器所瞄准的元素中的所有文本,以及所选元素的子元素中的所有文本。如果你在body元素中有多个带有文本的p标签,你执行$(body).text(),你将获得所有段落的所有文本。(只有文本,而不是p标签本身。)
.html()将为您提供文本和标记。$(body).html()会给你整个HTML页面
.val()适用于具有value属性的元素,例如input。 输入不包含文本或HTML,因此.text()和. HTML()对于输入元素都将为空。
var v = "全名";
$("#div").html(v); //display as "全名"
$("#div").text(v); //display as "全名"
text()——该方法设置或返回所选元素的文本内容。 html()——该方法设置或返回所选元素的内容。 参考示例:https://www.tutorialspoint.com/online_jquery_editor.php
text函数将值设置或检索为纯文本,否则,HTML函数将值设置或检索为HTML标记,以更改或修改该值。 如果你只想改变内容,那么使用text()。但是如果你需要改变标记,那么你必须使用hmtl()。
这对我来说是个愚蠢的答案,别介意。