浅析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 相关文章推荐
简单的js分页脚本
May 21 Javascript
Javascript 错误处理的几种方法
Jun 13 Javascript
Jquery插件写法笔记整理
Sep 06 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
JS原型与原型链的深入理解
Feb 15 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
利用ES6语法重构React组件详解
Mar 02 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
vue中axios请求的封装实例代码
Mar 23 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 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 转义使用详解
2013/07/15 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
网页图片延时加载的js代码
2010/04/22 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python读大数据txt
2016/03/28 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
建筑系毕业生自我鉴定
2014/01/24 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
Python字符串常规操作小结
2022/04/03 Python