JQuery中text()、html()和val()的区别

 1. html()取得第一个匹配元素的内容,简单来说就是所取得的标签所包含的所有东西。

      假如括号中有带val的话,最简单的理解就是将上一步取得的内容全部替换成括号中val,下面看demo

复制代码
1     <div id="divTest" value='2'>
2         这是div的内容!
3         <label id="lblText">
4             这是label的内容!
5         </label>
6         <div id="divTest2">
7             第二个div内容!
8         </div>
9     </div>
复制代码

    这是html文档结构,现在我们执行下面js代码看看所取得的是什么的东西

1  $("#divTest").html()  //所取得内容:这是div的内容!<label id="lblText">这是label的内容!</label> <div id="divTest2">第二个div内容!</div>
1  $("#divTest").html("我要修改了!")  //执行修改

  上面修改之后,我们接着获取一下

 1 $("#divTest").html() //所取得内容:我要修改了! 

  注:html()方法可以用于XHTML文档,但不能用于XML文档!

  2.text():取得所有匹配元素的内容,结果是由所有匹配元素包含的文本内容组合起来的文本,同理,text(val)是设置所有匹配元素的文本内容

1 $("#divTest").text() //所取得内容:这是div的内容!这是label的内容!第二个div内容!
2                             //可见所取得是标签内的东西,但不会取标签

  注:这个方法对HTML和XML文档都有效

  3.val()常用来操作标准的表单组件对象,如button,text,hidden

  例如添加了一个select元素以及一个hidden的元素

1     <select id="selectVal">
2         <option value="1" selected="selected">1</option>
3         <option value="2" >2</option>
4     </select>
5     <input type="hidden" id="hidVal" value="1"/>

  现在我们来取一下他们的值

1 $("#selectVal").val()  //取得值为:1  同理这个也是 $("#hidVal").val()

  有时候开发的时候会在一个div内设置一个value的属性,那么我们在取值的时候可以用这样

1 $("#divTest").attr('value')

对于text()和html()来说,获取元素内部的值的用法基本上是一样的,结果是由所有匹配元素包含的文本内容组合起来的文本,如<p>...</p>  <dt>...<dt>等等,所以xml和html都可以获取(元素闭合)

而对于val() 则是获得第一个匹配元素的当前值,比如<input type="text" value="sdfdsf"> 那么利用这个方法将获得的是input 元素的value值,而利用text()方法是获取不到的,因为不是闭合元素

出处:http://www.cnblogs.com/PowerDK/

原文地址:https://www.cnblogs.com/jvziking/p/7991467.html