8

在我发布(并得到回答)的这个问题中,我发现了如何正确地将文本框的值分配给标签的值。答案是使用

$('#txtBranchName').val($('#lblBranchName').html());

或者

$('#txtBranchName').val($('#lblBranchName').text());

一个比另一个更可取吗?是否存在性能差异,或者一种方法不起作用但另一种方法在特定情况下会起作用?

4

3 回答 3

21

设定数据

.text("<b>Test</b>")将转义任何 HTML 标签(渲染<b>Test</b>

.html("<b>Test</b>")会将它们呈现为实际的 HTML 元素(呈现Test)。

读取数据

.text()将仅返回文本节点(剥离标签)

.html()将返回包含标签的实际 HTML 字符串。


这是一个JSFiddle,它显示了两种方式的差异。

于 2013-01-24T15:24:23.723 回答
5

如果标签没有 HTML 子标签,那么无论哪种方式都是一样的,但是如果有任何标签(例如红色的“必需”标记),最好使用它,.text()这样您就可以获得该标记,而不是生成它的 HTML .

于 2013-01-24T15:25:22.340 回答
5

参考jQuery: text() 和 html() 有什么区别?.text() 和 .html() 之间的区别与转义的 < 和 > 字符

实际上两者看起来确实有些相似,但完全不同,这取决于您的用途或您想要实现的意图,

在哪里使用:

  • 使用 .html() 对具有 html 元素的容器进行操作。
  • 使用 .text() 修改通常具有单独的开始和结束标签的元素的文本

jQuery.html()将字符串视为 HTML,jQuery.text()将内容视为文本。

Unlike the .html() method, .text() can be used in both XML and HTML documents. The result of the .text() method is a string containing the combined text of all matched elements. (Due to variations in the HTML parsers in different browsers, the text returned may vary in newlines and other white space.)

于 2013-01-24T15:26:11.563 回答