html()方法与text()方法

问题描述:

一些或多个人使用html()方法获取元素的文本,如<p>text</p>,并得到这个$('p').html()或或$('p').text()html()方法与text()方法

很明显,我知道html方法和文本方法之间存在巨大差异。但我想了解更多这方面的信息,有什么更好的使用?

有人可能会说文字方法比html方法好,请解释一下为什么?

+1

没有仅为之一是更适合于解决*特定问题*比其他比其他“更好”,一个概念。如果你需要HTML,你显然使用'.html()',如果你想要移除HTML,你显然使用'.text()'。如果你能保证他们不管回到什么地方都完全一样,那么这两种方式都没有关系。 –

有供人们使用的时候以及为什么使用HTML和/或文本的方法,但我想告诉你的HTML喜好()方法比text()方法更快:

HTML方法只是innerHTML的一个包装,但是使用文本方法jQuery添加了一个“实体过滤器”,并且此过滤器扩展了时间。

  • .text()可用于XML和HTML文档。
  • .html()仅适用于html文档。

See more info here

所以,你要使用哪一个?

+1

非常感谢@ C-link。 –

当你需要HTML格式/风格,而文本所呈现,那么你应该使用html(),当你只需要文本,然后去text()

这些方法是从的TextContent/innerHTML的衍生..

$('#yourid').text() = document.getElementsByID('yourid')[0].textContent); 
hello <span> 

您应该使用.text()如果你想获得的HTML没有转义字符..

$('#yourid').html() = document.getElementsByID('yourid')[0].innerHTML 
hello &lt;span&gt; 

如果您想设置HTML或获取原始转义HTML,您应该使用.html();

作为每jQuery的说,
.text()方法的结果是一个包含所有匹配元素的组合的文本的字符串。

由于不同的浏览器的HTML解析器变化,
返回在新行和其他空白空间可能会发生变化的文本。

.text()方法不能在
形式输入或脚本中使用。
从jQuery 1.4开始,.text()方法返回文本和CDATA节点以及元素节点的值。*

.text()增加给定的表达式作为文本,.html()其添加到DOM作为HTML表达

这里是一个例子;

var str = '<strong>HELLO</strong>' 
$("#addHere").text(str); 

=>你会看到在#addHere

var str = '<strong>HELLO</strong>' 
$("#addHere").html(str); 
实际字符串 <strong>HELLO</strong>

=>你会看到一个大胆HELLO在#addHere

jQuery提供2个功能文本()和HTML()何时使用text()函数以及何时使用html()函数是相当混乱的,因为这两个函数都是不同的并且用于不同的目的。

.html() - 此jQuery函数获取/设置任何元素的HTML。 .text() - 这个jQuery函数获取/设置任何元素的文本(innertext)。

What is the difference between jQuery: text() and html() ?