深入学习jQuery描述文本内容的3个方法

前面的话

  在javascript中,描述元素内容有5个属性,分别是innerHTML、outerHTML、innerText、outerText和textContent。这5个属性各自有各自的功能,且兼容性不同。jQuery针对这样的处理提供了3个便捷的方法,分别是:html()、text()和val()。本文将详细介绍jQuery描述文本内容的这3个方法

 

html()

  html()方法类似于javascript中的innerHTML属性,用来获取集合中第一个匹配元素的HTML内容或设置每一个匹配元素的html内容,具体有3种用法:

【1】html()

  html()不传入值可以用来获取集合中第一个匹配元素的HTML内容

  [注意]与innerHTML属性的问题相同,IE8-浏览器会将所有标签转换成大写形式,且不包含空白文本节点;而其他浏览器则原样返回

<div class="test">
<div>Demonstration Box</div>
</div>
<div class="test">
<div>123</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//'  <div>Demonstration Box</div>'
console.log($('.test').html());
</script>

【2】html(htmlString)

  html(htmlString)方法设置每一个匹配元素的html内容,这些元素中的任何内容会完全被新的内容取代。此外,用新的内容替换这些元素前,jQuery从子元素删除其他结构,如数据和事件处理程序,这样可以防止内存溢出

<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//123
$('div.demo-container').html('123');
</script>

【3】html(function(index, oldhtml)) 

  html(function(index, oldhtml))用来返回设置HTML内容的一个函数。接收元素的索引位置和元素原先的HTML作为参数。jQuery的调用这个函数之前会清空元素,使用oldhtml参数引用先前的内容。在这个函数中,this指向元素集合中的当前元素

<div class="demo-container">123</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//1230
$('div.demo-container').html(function(index,oldhtml) {
return oldhtml   index;
});
</script>

使用范围

  与innerHTML属性相同,html()方法只能应用于双标签,单标签无效

<input id="test" value="123">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log(test.innerHTML)//''
console.log($('#test').html())//''
</script>

 

text()

  text()方法类似于javascript中的innerText属性,得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容,具体有3种用法:

【1】text()

  text()方法得到匹配元素集合中每个元素的合并文本,包括他们的后代

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//This is a simple document
console.log($('#test').text());
</script>
<div>1</div>
<div>2</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//12
console.log($('div').text());
</script>

【2】text(textString)

  text(textString)用来设置匹配元素集合中每个元素的文本内容为指定的文本内容

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#test').text('<i>123</i>');
//'<i>123</i>'
console.log($('#test').text());
</script>

【3】text(function(index, text))

  text(function(index, text))方法通过使用一个函数来设置文本内容,该函数接收元素的索引位置和文本值作为参数,返回设置的文本内容

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#test').text(function(index, text){
return text   index;
});
//'This is a simple document0'
console.log($('#test').text());
</script>

  该方法常用于数据初始化,使用html()方法也可以实现同样效果

<ul>
<li></li>
<li></li>
<li></li>
</ul>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('ul li').text(function(index, text){
return '内容'   (index 1);
});
//'内容1内容2内容3'
console.log($('li').text());
//'内容1'
console.log($('li').html());
</script>

使用范围

  与innerText属性相同,text()方法不能使用在input元素。在IE8-浏览器下,text()方法不能使用在script元素上

  input元素可以使用val()方法获取或设置文本值;script元素可以使用html()方法

<input id="test1" value="123">
<script id="test2">
var a = 1;
</script>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test1').text());//''
//IE8-浏览器返回'',其他浏览器返回'var a = 1;'
console.log($('#test2').text());
console.log($('#test1').val());//'123'
console.log($('#test2').html());//'var a = 1;'
</script>

 

val()

  val()方法类似于javascript中的value属性,主要是用于处理表单元素的值,用于获取匹配的元素集合中第一个元素的当前值或设置匹配的元素集合中每个元素的值

val()

  当val()方法没有参数时,表示获取元素的value值

<input id="test" value="text">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test').val());//'text'
</script>

  [注意]通过val()方法从textarea元素中取得的值是不含有回车(\r)字符的。但是如果该值是通过XHR传递给服务器的,回车(\r)字符会被保留(或者是被浏览器添加的,但是在原始数据中并不包含回车(\r))。可以使用下面的valHook方法解决这个问题

$.valHooks.textarea = {
get: function(elem){
return elem.value.replace(/\r?\n/g,"\r\n");
}
};

  val()方法主要用于获取表单元素的值,比如input,select和textarea。对 <select multiple="multiple">元素,val()方法返回一个包含每个选择项的数组,如果没有选择性被选中,它返回null

<textarea id="test1">1</textarea>
<input id="test2" value="2">
<select id="test3">
<option>3</option>
</select>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test1').val());//1
console.log($('#test2').val());//2
console.log($('#test3').val());//3
</script>

val(value)

  val(value)用来设置表单元素的value值

<input id="test" value="2">
<button id="btn">按钮</button>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
btn.onclick = function(){
var value = $('#test').val();
$('#test').val('测试'  value)
}
</script>

style="width: 100%; height: 40px;" src="https://demo.xiaohuochai.site/jquery/content/c1.html" frameborder="0" width="320" height="240">

val(function(index, value))

  val()方法可以接受一个函数作为参数,函数中的this指向当前元素。接收的集合中的元素,旧的值作为参数的索引位置,返回设置的值

<input id="test" value="2">
<button id="btn">按钮</button>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
btn.onclick = function(){
$('#test').val(function(index,value){
return '测试' index   value;
})
}
</script>

style="width: 100%; height: 40px;" src="https://demo.xiaohuochai.site/jquery/content/c2.html" frameborder="0" width="320" height="240">

 

总结

  html()、text()、val()三种方法都是用来读取选定元素的内容;html()是用来读取元素的html内容,text()用来读取元素的纯文本内容,val()是用来读取表单元素的value值。其中html()和text()方法不能使用在表单元素上,而val()只能使用在表单元素上

  html()和val()方法使用在多个元素上时,只读取第一个元素;而text()方法应用在多个元素上时,将会读取所有选中元素的文本内容

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

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


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

luoguP4551最长异或路径

P4551最长异或路径 链接 luogu 思路 从\(1\)开始\(dfs\)求出\(xor\)路径。然后根据性质\(x\)到\(y\)的\(xor\)路径就是\(xo[x]^xo[y]\) 代码 #include <bits/stdc.h> using namespace std; const int _1e57; int xo[_],w[_],ans-1,num0; struct node {int v,q,nxt; }e[_&…

谈一谈我的996 (随笔)

说一说996这个最近技术圈比较热门的话题。 什么是996&#xff0c;早九晚九一周上班6天。 看朋友圈&#xff0c;有个朋友说自己没有经历过什么是996&#xff0c;感觉自己是个假的程序员&#xff0c;是不是程序员就应该加班呢&#xff0c;是不是已经下意识&#xff0c;大众性的认…

装饰器设计模式的应用

嗨&#xff0c;您好&#xff01; 今天&#xff0c;我将展示装饰设计模式的实际应用。 装饰器设计模式是一种广泛使用的设计模式&#xff0c;同时在运行期间处理图形&#xff0c;树木和动态更改。 如果您正在寻找或尝试进行递归&#xff0c;这也是一个不错的选择。 我喜欢它。…

ubuntu postgresql 的安装

本人亲测&#xff0c;在ubuntu9.10上安装的postgresql 8.3版本。郁闷了好几天&#xff0c;终于ok了。sudo apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-contrib-8.3然后在/etc/profile里加上export POSTGRES_HOME/usr/lib/postgresql/8.3export PGLIB$PO…

loj2090. 「ZJOI2016」旅行者

loj2090. 「ZJOI2016」旅行者 链接 loj 思路 \((l,mid)(mid1,r)\).考虑跨过mid的贡献。 假设选的中间那条线的点为gzy,贡献为\(dis(x,gzy)dis(gzy,y)\) 那就计算n遍最短路,一次分治为\(n^2mlog{nm}\) 设Sn*m.矩阵的长度是不定的&#xff0c;每次取最长的边进行分治是最好的&…

利用select实现年月日三级联动的日期选择效果

前面的话 关于select控件&#xff0c;可能年月日三级联动的日期选择效果是最常见的应用了。本文是选择框脚本的实践&#xff0c;下面将对日期选择效果进行详细介绍 演示 style"width: 100%; height: 80px;" src"https://demo.xiaohuochai.site/js/date/d2.html&…

ubuntu资料

1、VNC实现Windows远程访问Ubuntu 16.04&#xff08;无需安装第三方桌面,直接使用自带远程工具&#xff09; https://www.cnblogs.com/xuliangxing/p/7642650.html 转载于:https://www.cnblogs.com/little-kwy/p/10761865.html

守护基于JVM的应用程序

部署体系结构设计是任何定制服务器端应用程序开发项目的重要组成部分。 由于其重要性&#xff0c;部署架构设计应尽早开始&#xff0c;并与其他开发活动一起进行。 部署体系结构设计的复杂性取决于许多方面&#xff0c;包括所提供服务的可伸缩性和可用性目标&#xff0c;部署过…

开篇

进入软件行业已有数日&#xff0c;但终归还算是新手。 对程序员有点好奇&#xff0c;所以选择这个职业&#xff0c;从现在开始希望能够记下自己从业当中的点点滴滴&#xff0c;同时希望自己也能够一直坚持下去。转载于:https://www.cnblogs.com/gaser/archive/2009/11/22/16082…

构造函数 基本使用

相关知识点&#xff1a; 构造函数、原型对象、实例对象 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta h…

2019CCPC网络预选赛 八道签到题题解

目录 2019中国大学生程序设计竞赛&#xff08;CCPC&#xff09; - 网络选拔赛6702 &6703 array6704 K-th occurrence6705 path6706 huntian oy6707 Shuffle Card6708 Windows Of CCPC6709 Fishing Master 2019中国大学生程序设计竞赛&#xff08;CCPC&#xff09; - 网络选…

深入理解表单脚本系列第一篇——表单对象

前面的话 javascript最初的一个应用就是分担服务器处理表单的责任&#xff0c;打破处处依赖服务器的局面。尽管目前的web和javascript已经有了长足的发展&#xff0c;但web表单的变化并不明显。由于web表单没有为许多常见任务提供现成的解决方法&#xff0c;很多开发人员不仅会…

stm32开发问题集锦

1 在flash中跑程序时&#xff0c;能进入中断&#xff0c;但在ram中跑时&#xff0c;进不了中断的原因。看以下的中断配置函数可以知道&#xff0c;要在ram中调试程序&#xff0c;需要定义VECT_TAB_RAM。定义方法a:在Project\Options for taget xxx 的对话框的c/c中定义宏VECT_T…

luoguP4213 【模板】杜教筛(Sum)杜教筛

链接 luogu 思路 为了做hdu来学杜教筛。 杜教筛模板题。 卡常数&#xff0c;我加了register居然跑到不到800ms。 太深了。 代码 // luogu-judger-enable-o2 #include <bits/stdc.h> #define ll long long using namespace std; const int _5000030; int vis[_],pri[_],cn…

深入理解脚本化CSS系列第二篇——查询计算样式

前面的话 元素的渲染结果是多个CSS样式博弈后的最终结果&#xff0c;这也是CSS中的C(cascade)层叠的含义。访问第一篇中的style属性只能获取行间样式&#xff0c;这通常来说&#xff0c;并不是我们想要的结果。本文将详细介绍如何查询计算样式 getComputedStyle() 元素的计算样…

创建自己的Java批注

如果您一直在用Java编程并且使用诸如Spring和Hibernate之类的任何流行框架&#xff0c;那么您应该对使用注释非常熟悉。 当使用现有框架时&#xff0c;其注释通常就足够了。 但是&#xff0c;您是否发现需要创建自己的注释&#xff1f; 不久之前&#xff0c;我找到了一个理由来…

浅谈MAXIMO项目实施(转)

浅谈MAXIMO项目实施工作以来&#xff0c;参与了XX公司的MAXIMO项目实施&#xff0c;妄谈一些工作中的感受和对MAXIMO的理解&#xff0c;欢迎砖头。[b]对MAXIMO的理解[/b]MAXIMO是老外的软件&#xff0c;是J2EE上架起的很成熟的平台级系统&#xff0c;其中融入了老外的管理方式和…

完整机器学习项目的流程

1 抽象成数学问题 明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情&#xff0c;胡乱尝试时间成本是非常高的。 这里的抽象成数学问题&#xff0c;指的明确我们可以获得什么样的数据&#xff0c;抽象出的问题&#xff0c;是一个分类还是回归或者…

使用Stream API的类Java产量

几种编程语言&#xff08;例如Ruby或Python等&#xff09;提供yield命令。 在内存消耗方面&#xff0c;Yield提供了一种有效的方式&#xff0c;可以通过按需生成值来创建一系列值。 有关Python产量的更多信息。 让我们考虑一个需要大量安全随机整数的类或方法。 经典方法是创建…

深入理解DOM节点类型第六篇——特性节点Attribute

前面的话 元素的特性在DOM中以Attr类型表示&#xff0c;从技术角度讲&#xff0c;特性是存在于元素的attributes属性中的节点。尽管特性是节点&#xff0c;但却不是DOM节点树的一部分。本文将详细介绍该部分内容 特征 特性节点的三个node属性————nodeType、nodeName、nodeV…