JS中property与attribute的区别
property与attirbute都是属性的意思,在JS中很容易混淆,但实际上二者有很大的区别。简单来说,
- property:是DOM中的属性,是JavaScript中的对像
- attribute:是HTML标签上的属性,与HTML标签上显示的属性(比如id、class、title等)一一对应
1. property
有以下代码
- <input type="radio" name="" class="单选框1">
- var OInput = document.getElementsByTagName('input')[0];
- console.dir(OInput);
控制台上显示的结果如下:
红色方框中的各个元素就是OInput的properties,这些属性都是DOM中的内置属性,我们不能增加或删除属性,但可以查看和修改属性值。修改方式如下:
- // 对象.属性名 或 对象["属性名"]
- // 修改
- OInput.title = "单选框";
- OInput["title"] = "单选框";
- // 查看
- OInput.title;
- OInput["title"];
细心点我们可以发现,properties没有class属性,但却有className属性;也就是说我们得通过className来查看和修改class属性值。
2. attribute
仔细观察,我们还可以发现在properties中还有一个attributes属性,把它展开如下
我们可以发现里面有三个元素,这三个元素就是HTML标签中的三个属性(attribute),这就是attriube,我们可以把它看作是OInput对象的一个property。attributes中的元素都是对象,它们都有自己的属性,比如baseURI、name、nodeType、value等。查看和修改attribute的方法如下
- // 查看
- OInput.getAttribute('class');
- // 修改和设置,添加新属性后,HTML标签会自动同步更新
- OInput.setAttribute('class', '单选框'); // 等同于OInput.attribute.class.value = '单选框'
- // 还可以添加自定义的第三方属性 OInput.setAttribute('class1', '单选框1');
- OInput.setAttribute('class1', '单选框1')
- // attribute中的属性名和属性值都只能是字符串(string)
3. jQuery中prop和attr方法
prop方法
prop方法对应property,attr方法对应attribute;用法如下
- // 查看
- $(OInput).prop('class');
- $(OInput).attr('class');
- // 设置
- $(OInput).prop('class', '单选框');
- $(OInput).attr('class', '单选框');
4. properties和attributies相同属性间的联系
一般来说,property的属性值和attribute的属性值会同步改变。比如
- $(OInput).attr("class", "单选框1");
- $(OInput).prop("title", "这是一个单选框");
- // $(OInput).prop("class")和$(OInput).attr("title")的值也会随之改变
注意,attribute的值只能是string类型的,而property的值可以为任何类型;对于某些特殊属性,其值是非字符串类型的;比如input标签中的checked属性,此时情况会变得不一样,具体描述如下:
- // OInput.checked只能是是bool类型的,即true或false
- // OInput.getAttribute('checked')只能是string类型,即HTML标签上显示的是什么就是什么
- // 我们依然可以在attributes中查看checked属性的bool值,可通过如下方法
- OInput.attributes.checked.ownerElement.checked
JS中property与attribute的区别的更多相关文章
- C#中Property和Attribute的区别
C#中Property和Attribute的区别 Attribute 字段Property 属性(get;set;) 属性的正常写: private string name; public strin ...
- C#中 property 与 attribute的区别?
C#中 property 与 attribute的区别?答:attribute:自定义属性的基类;property :类中的属性
- DOM 中 Property 和 Attribute 的区别
原文地址:http://web.jobbole.com/83129/ property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute: ...
- [转]DOM 中 Property 和 Attribute 的区别
angular的文档: https://angular.io/guide/template-syntax#property-binding https://blog.csdn.net/sunq1982 ...
- JavaScript 中 Property 和 Attribute 的区别详解
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
- DOM 中 Property 和 Attribute 的区别(转)
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
- C#中 property 与 attribute的区别
说的通俗些Attribute是类,不过是一类比较特殊的类,Attribute必须写在一对方括号中,用来处理.NET中多种问题:序列化.程序的安全特征等等,在.NET中的作用非同凡响 Attribute ...
- DOM中 property 和 attribute 详解
被问到 property 和 attribute 的区别,想来也是要好好看一下. 一.基本概念区别 其实Attribute和Property这两个单词,翻译出来都是“属性”,<js高级程序设计& ...
- Property 和 Attribute 的区别(转)
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
随机推荐
- 【CF963C】Cutting Rectangle(数论,构造,map)
题意: 思路:考虑构造最小的单位矩形然后平铺 单位矩形中每种矩形的数量可以根据比例算出来,为c[i]/d,其中d是所有c[i]的gcd,如果能构造成功答案即为d的因子个数 考虑如果要将两种矩形放在同一 ...
- Jmeter(二) Jmeter组件介绍
一.测试计划 测试的起点,同时也是其他所有组件的容器 二.线程(用户) Setup 线程组:一种特殊类型的线程,可用于执行预测试操作.即执行测试前进行定期线程组的执行 Teardown 线程组:一种特 ...
- js几种加密方法
1.base64加密 它的github地址:https://github.com/dankogai/js-base64 <!DOCTYPE HTML> <html> <h ...
- 应对高并发场景的redis加锁技巧
// 获取锁getLock() { // 是否有正在执行的线程 boolean hasLock = false; try { hasLock = redisClient ...
- create-react-app创建,ie11不兼容
按照官方文档使用yarn create react-app centre-app 创建工程,使用yarn start, chrome浏览器可正常访问 但在ie11下报如下图错误 解决方案如下: 1. ...
- C++入门经典-例3.3-if-else语句的奇偶性判别
1:代码如下: // 3.3.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...
- 作业要求20191010-9 alpha week 1/2 Scrum立会报告+燃尽图 07
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8752 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...
- 后盾网lavarel视频项目---图片上传
后盾网lavarel视频项目---图片上传 一.总结 一句话总结: 前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单 public function uploader(R ...
- perfecto使用
总配置 application.properties env.resources=src/main/resources/common #配置resource文件所在目录,如.loc定位文件 resou ...
- fiddler查看http压缩格式传输的报文
1.当传输的报文比较大时,http一般会采取压缩的格式(如gzip)传输(支持编码:Accept-Encoding: gzip, deflate, br).2.当采用压缩格式编码传输时,直接在raw中 ...