日期:2014-05-16  浏览次数:20957 次

jQuery的html(),text()和val()区别

原文链接:http://m.oschina.net/blog/62024

1、.html()用为读取和修改元素的HTML标签

2、.text()用来读取或修改元素的纯文本内容

3、.val()用来读取或修改表单元素的value值

?

这三个方法功能上的对比:

.html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的HTML内容(包括其Html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值。其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。

.html(htmlString),.text(textString)和.val(value)三种方法都是用来替换选中元素的内容,如果三个方法同时运用在多个元素上时,那么将会替换所有选中元素的内容。

.html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。

? ? ?例子:

?

<div id="div">
    <p>here is a paragram</p>
    <div>here is a big DIV</div>
</div>
 
function showVal()
{
    var div = $("#div");
    alert("showVal():  "+div.val());
    //显示为空
}

function showHtml()
{
   var div = $("#div");
   alert("showHtml():  "+div.html());
   //显示为:
   //<p>here is a paragram</p>
   //<div>here is a big DIV</div>
}
 
function showText()
{
    var div = $("#div");
    alert("showText():  "+div.text());
    //显示为:
    //here is a paragram
    //here is a big DIV
}

?

?

总结:val()---一般 用在input上,而不用在其他元素,用来获取input或者是select的值

html()和text()可用在多种元素上,但是html()相当于依据源代码返回,也就是在返回的内容中会包含各种tag,而text()则相当于是依据页面显示返回,返回的内容是出去各种tag之间的内容

?

html属性中有两个方法,一个有参,一个无参

?

1. 无参html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档,返回的是一个String

?

例子:

? ? ? html页面代码:<div><p>Hello</p></div>

? ? ? jquery代码:$("div").html();

? ? ? 结果:Hello

?

?2.有参html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。返回一个jquery对象

?

html页面代码:<div></div>

jquery代码:$("div").html("<p>Nice to meet you</p>");

结果:[ <div><p> Nice to meet you</p></div> ] ? ? ?

?

?

其次,text属性中有两个方法,一个有参,一个无参

?

1. 无参text():取得所有匹配元素的内容。结果是由所有匹配元素包含的文本内容组合起来的文本。返回的是一个String

?

例子:

? ? ? ?html页面代码:<p><b>Hello</b> fine</p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <p>Thank you!</p>

? ? ? ?jquery代码:$("p").text();

? ? ? ?结果:HellofineThankyou!

?

2.有参text(val):设置所有匹配 元素的文本内容,与 html() 类似, 但将编码 HTML (将 "<" 和 ">" 替换成相应的HTML实体).返回一个jquery对象

? html页面代码:<p>Test Paragraph.</p>

? jquery代码:$("p").text("<b>Some</b> new text.");

? 结果:[ <