浅析JQuery中的html(),text(),val()区别


Posted in Javascript onSeptember 01, 2014

1.HTML

html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档

html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。

2.TEXT

text():取得所有匹配元素的内容。一般用id区别

结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。

text(val):设置所有匹配元素的文本内容

与 html() 类似, 但将编码 HTML (将 "<" 和 ">" 替换成相应的HTML实体).

3.VAL

val():获得第一个匹配元素的当前值。一般用来取input的value值。

val(val):设置每一个匹配元素的值。

上面的内容是在JQuery的帮助文档里拷贝的,也都不废话多说了。下面是自己做的一些练习,代码如下:

在做练习的时候我发现了html和text的另一个不同的地方

html()去元素的内容的时候,能将所选定的元素下面的格式也取到了。

如:<div id="divShow"><b><i>Write Less Do More</i></b></div>

如果我们用var strHTML = $("#divShow").html();取的话,

结果是:<b><i>Write Less Do More</i></b>

如果我们用var strHTML2 = $("#divShow b i").html();取的话

结果是Write Less Do More

而text没有第一种情况,

如果我们var strText = $("#divShow").text();取的话

结果是Write Less Do More

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
 <script src="js/jquery.js" type="text/javascript"></script>
 <!--
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 -->
 <title> 获取或设置元素的内容</title>
 <style type="text/css">
 body{font-size:15px;text-align:center}
 div{border:solid 0px #666;padding:5px;width:220px;margin:5px}
 </style>
 <script type="text/javascript">
 $(function() {
  var strHTML = $("#divShow").html();// 获取HTML 内容(包含div下面的两个格式)
  var strHTML2 = $("#divShow b i").html(); //获取HTML内容
  var strHTML3 = $("div").html();
  var strText = $("#divShow").text();// 获取文本内容
  var strText2 = $("div").text();
  
  $("#divHTML").html(strHTML);// 设置HTML 内容
  $("#divHTML2").html(strHTML2); //设置HTML内容
  $("#divHTML3").html(strHTML3); //设置HTML内容
  $("p").html(strHTML);
  
  $("#divText").text(strText);// 设置文本内容
  $("#divText2").text(strText2);// 设置文本内容
  $("a").text(strText);
  
  $("select").change(function() { // 设置列表框change 事件
  // 获取列表框所选中的全部选项的值
  alert($("select").val());
  var strSel = $("select").val().join(",");
  $("input").val(strSel); // 显示列表框所选中的全部选项的值
  })
 })
 </script>
 </head>
 <body>
 <table border="1" bordercolor="#A9A9A9" cellspacing="0">
 <tr><td>******************************</td><td>*******************************************</td></tr>
 <tr>
 <td><div id="divShow"><b><i>Write Less Do More</i></b></div></td>
 <td>这是原内容</td>
 </tr>
 <tr>
 <td><div id="divShow"><b><i>Write XXXX Do XXXX</i></b></div></td>
 <td>这是原内容</td>
 </tr>
<tr><td>******************************</td><td>*******************************************</td></tr>
 <tr>
 <td><div id="divHTML">1</div></td>
 <td>获取原内容(连带内容的格式)后以html方式输出</td>
 </tr>
 <tr>
 <td><div id="divHTML2">2</div></td>
 <td>获取原内容(不带内容的格式)后以html方式输出</td>
 </tr>
 <tr>
 <td><div id="divHTML3">3</div></td>
 <td>获取原内容(获取第一个匹配元素的内容)后以html方式输出</td>
 </tr>
 <tr>
 <td><p></p></td>
 <td>HTML方式设置段落的文本</td>
 </tr>
 <tr>
 <td><p></p></td>
 <td>如果这个也有内容了,就是设置每个匹配元素的内容</td>
 </tr>
<tr><td>******************************</td><td>*******************************************</td></tr>
 <tr>
 <td><div id="divText">4</div></td>
 <td>获取原内容后以text方式输出</td>
 </tr>
 <tr>
 <td><div id="divText2"></div></td>
 <td>获取原内容(获取所有匹配元素的内容)后以text方式输出</td>
 </tr>
 <tr>
 <td><a></a></td>
 <td>TEXT方式设置段落的文本</td>
 </tr>
 <tr>
 <td><a></a></td>
 <td>如果这个也有内容了,就是设置每个匹配元素的内容</td>
 </tr>
 <tr><td>******************************</td><td>*******************************************</td></tr>
 <tr>
 <td>
 
 <select multiple="multiple"style="height:96px;width:85px">
  <option value="1">Item 1</option>
  <option value="2">Item 2</option>
  <option value="3">Item 3</option>
  <option value="4">Item 4</option>
  <option value="5">Item 5</option>
  <option value="6">Item 6</option>
 </select>
 <select>
  <option value="7">Item 7</option>
  <option value="8">Item 8</option>
  <option value="9" selected>Item 9</option>
 </select>
 </td>
 <td>
 </td>
 </tr>
 <tr>
 <td><input ></input></td>
 <td><input ></input></td>
 </tr>
 </table>
 </body>
</html>

大家也都可以自己去验证下,上面是我做的实验,我用的JQuery是1.6

总结一下:

.html()用为读取和修改元素的HTML标签
.text()用来读取或修改元素的纯文本内容
.val()用来读取或修改表单元素的value值。

这三个方法功能上的对比

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

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

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

下面是其他网友给出的实例:

假如html结构如下

<div id="divTest" value='2'>
    这是div的内容!
    <label id="lblText">
      这是label的内容!
    </label>
    <div id="divTest2">
      第二个div内容!
    </div>
  </div>

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

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

上面修改之后,我们接着获取一下
$("#divTest").html() //所取得内容:我要修改了!

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

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

$("#divTest").text() //所取得内容:这是div的内容!这是label的内容!第二个div内容!
                             //可见所取得是标签内的东西,但不会取标签
注:这个方法对HTML和XML文档都有效

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

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

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

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

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

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

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

如有不妥,还请斧正!

Javascript 相关文章推荐
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
jQuery超赞的评分插件(8款)
Aug 20 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 Javascript
vue单个组件实现无限层级多选菜单功能
Apr 10 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
JS中箭头函数与this的写法和理解
Jan 14 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 #Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
Sep 01 #Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 #Javascript
影响jQuery使用的14个方面
Sep 01 #Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 #Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 #Javascript
JQuery $.each遍历JavaScript数组对象实例
Sep 01 #Javascript
You might like
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
12岁生日感言
2014/01/21 职场文书
个人求职信范例
2014/01/29 职场文书
法制宣传口号
2014/06/16 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
保险内勤岗位职责
2015/04/13 职场文书
学术会议领导致辞
2015/07/29 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP