浅析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 相关文章推荐
popdiv
Jul 14 Javascript
javascript 遍历验证所有文本框的值
Aug 27 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
jquery实现带二级菜单的导航示例
Apr 28 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
JavaScript将字符串转换成字符编码列表的方法
Mar 19 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
基于jquery实现ajax无刷新评论
Aug 19 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 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
php修改NetBeans默认字体的大小
2013/07/02 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
用Python实现读写锁的示例代码
2018/11/05 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python简单的三元一次方程求解实例
2020/04/02 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
Pandas的数据过滤实现
2021/01/15 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
优纳科技软件测试面试题
2012/05/15 面试题
党校自我鉴定范文
2013/10/02 职场文书
优秀党员主要事迹
2014/01/19 职场文书
明星邀请函
2015/02/02 职场文书
党员承诺书格式范文
2015/04/28 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android