DOM概念的区分:Attribute和Property, html()及.text(), .val()
2024-10-15 13:06:09
Attribute就是dom节点自带的属性
例如:html中常用的id、class、title、align等:
<div id="immooc" title="慕课网"></div>
而Property是这个DOM元素作为对象,其附加的内容,例如,tagName, nodeName, nodeType,, defaultChecked, 和 defaultSelected 使用.prop()方法进行取值或赋值等
获取Attribute就需要用attr,获取Property就需要用prop
读取、修改元素的html结构或者元素的文本内容是常见的DOM操作,jQuery针对这样的处理提供了2个便捷的方法.html()与.text()
.html()方法
获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容,具体有3种用法:
- .html() 不传入值,就是获取集合中第一个匹配元素的HTML内容
- .html( htmlString ) 设置每一个匹配元素的html内容
- .html( function(index, oldhtml) ) 用来返回设置HTML内容的一个函数
注意事项:
.html()方法内部使用的是DOM的innerHTML属性来处理的,所以在设置与获取上需要注意的一个最重要的问题,这个操作是针对整个HTML内容(不仅仅只是文本内容)
.text()方法
得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容。,具体有3种用法:
- .text() 得到匹配元素集合中每个元素的合并文本,包括他们的后代
- .text( textString ) 用于设置匹配元素内容的文本
- .text( function(index, text) ) 用来返回设置文本内容的一个函数
注意事项:
.text()结果返回一个字符串,包含所有匹配元素的合并文本
.html与.text的异同:
- .html与.text的方法操作是一样,只是在具体针对处理对象不同
- .html处理的是元素内容,.text处理的是文本内容
- .html只能使用在HTML文档中,.text 在XML 和 HTML 文档中都能使用
- 如果处理的对象只有一个子文本节点,那么html处理的结果与text是一样的
- 火狐不支持innerText属性,用了类似的textContent属性,.text()方法综合了2个属性的支持,所以可以兼容所有浏览器
.val(): 主要是用于处理表单元素的值,比如 input, select 和 textarea。
.val()方法
- .val()无参数,获取匹配的元素集合中第一个元素的当前值
- .val( value ),设置匹配的元素集合中每个元素的值
- .val( function ) ,一个用来返回设置值的函数
注意事项:
- 通过.val()处理select元素, 当没有选择项被选中,它返回null
- .val()方法多用来设置表单的字段的值
- 如果select元素有multiple(多选)属性,并且至少一个选择项被选中, .val()方法返回一个数组,这个数组包含每个选中选择项的值
.html(),.text()和.val()的差异总结:
- .html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值。其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
- .html(htmlString),.text(textString)和.val(value)三种方法都是用来替换选中元素的内容,如果三个方法同时运用在多个元素上时,那么将会替换所有选中元素的内容。
- .html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。
最新文章
- input type=";datetime-local"; 时placeholder不显示
- spring mvc(注解)上传文件的简单例子
- asp.net跳转页面的三种方法比较(转)
- spring加载hibernate映射文件的几种方式 (转)
- EasyUI combotree 使用技巧
- c语言诊断_断言库函数#include<;assert.h>;
- HDOJ-ACM1015(JAVA) 运用 组合、全排列实现
- 快速读取csv平面文件,并导入数据库,简单小工具
- supesite 连 discuz 论坛记录
- common-httpclient 用户名密码认证示例
- QuartusII中调用Modelsim的方法
- Python之FTP多线程下载文件之多线程分块下载文件
- Matlab笔记
- [RESTful] RESTful是什么,为什么要使用它
- 当SQL Server的实例位于集群的特定节点时,数据库无法远程访问
- Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embe
- LeetCode 811 Subdomain Visit Count 解题报告
- github下载源码的三种方式
- HTML&CSS精选笔记_CSS高级技巧
- /etc/redhat-release
热门文章
- 使用windos电脑模拟搭建集群(三)实现全网监控
- 中控考勤机WEB主动上报接收SERVER程序
- [python] win7 64位 安装pygame
- 计蒜客 28319.Interesting Integers-类似斐波那契数列-递推思维题 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 I)
- kylin
- cl编译C文件的环境变量修改
- 牛客练习赛16 A 字典序最大的子序列【贪心】
- 51nod 1596 搬货物【贪心/二进制】
- Codeforces 871D Paths (欧拉函数 + 结论)
- [CF617E]XOR and Favorite Number/[CQOI2018]异或序列