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的区别的更多相关文章

  1. C#中Property和Attribute的区别

    C#中Property和Attribute的区别 Attribute 字段Property 属性(get;set;) 属性的正常写: private string name; public strin ...

  2. C#中 property 与 attribute的区别?

    C#中 property 与 attribute的区别?答:attribute:自定义属性的基类;property :类中的属性

  3. DOM 中 Property 和 Attribute 的区别

    原文地址:http://web.jobbole.com/83129/ property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute: ...

  4. [转]DOM 中 Property 和 Attribute 的区别

    angular的文档: https://angular.io/guide/template-syntax#property-binding https://blog.csdn.net/sunq1982 ...

  5. JavaScript 中 Property 和 Attribute 的区别详解

    property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...

  6. DOM 中 Property 和 Attribute 的区别(转)

    property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...

  7. C#中 property 与 attribute的区别

    说的通俗些Attribute是类,不过是一类比较特殊的类,Attribute必须写在一对方括号中,用来处理.NET中多种问题:序列化.程序的安全特征等等,在.NET中的作用非同凡响 Attribute ...

  8. DOM中 property 和 attribute 详解

    被问到 property 和 attribute 的区别,想来也是要好好看一下. 一.基本概念区别 其实Attribute和Property这两个单词,翻译出来都是“属性”,<js高级程序设计& ...

  9. Property 和 Attribute 的区别(转)

    property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...

随机推荐

  1. Linux命令-磁盘管理(一)

    Linux命令-磁盘管理(一) Linux cd命令 Linux cd命令用于切换当前工作目录至 dirName(目录参数). 其中 dirName 表示法可为绝对路径或相对路径.若目录名称省略,则变 ...

  2. 【转】HDU-6035-Colorful Tree

    转自http://blog.csdn.net/Bahuia/article/details/76141574 题意: 题目链接:http://acm.hdu.edu.cn/showproblem.ph ...

  3. 利用jquery动态添加和删除表格的一行,并且保存单行数据

    开发时遇到一个需求:要求要在页面的表格可以添加和删除一行,并能填写对应的数据后保存这一行数据. HTML代码 界面使用了freemarker框架,teams是后台传过来的list类型数据 <fo ...

  4. 2018-2019-2 网络对抗技术 20165232 Exp7 网络欺诈防范

    2018-2019-2 网络对抗技术 20165232 Exp7 网络欺诈防范 原理与实践说明 1.实践目标 理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2.实践内容概述 简单应 ...

  5. ContentLoadingProgressBar

    注意必须设置style: <android.support.v4.widget.ContentLoadingProgressBar android:id="@+id/progressB ...

  6. ActiveMQ配置文档

    本文介绍一对一.一对多.持久化.非持久化消息配置方式 一.创建项目 导入jar 二.创建MQ.xml <!-- 配置JMS连接工厂 --> <bean id="connec ...

  7. php设计模式-注册树模式

    php注册树模式 1.什么是注册树模式? 注册树模式通过将对象实例注册到全局对象树上,需要的时候将对象从全局对象树上取下来,就像小时候买糖葫芦一样,卖糖葫芦的将糖葫芦插在一个大的杆子上,人们买的时候就 ...

  8. luoguP1502过河题解

    日常吐(fei)嘈(hua) 这道题作为最近卡了我3天的dp题(最后还是在题解的帮助下冥思苦想才过掉的题),窝觉得此题肥肠之脑洞,写此博客纪念 题解 过河 先来日常手玩样例: 咦感觉怎么手玩答案都像是 ...

  9. 浏览器端-W3School-JavaScript:JavaScript 事件参考手册

    ylbtech-浏览器端-W3School-JavaScript:JavaScript 事件参考手册 1.返回顶部 1. JavaScript 事件参考手册 事件通常与函数配合使用,这样就可以通过发生 ...

  10. Computer Network Homework3’ s hard question

    Computer Network Homework3’ s hard question 1. Which kind of protocol does CSMA belong to? A. Random ...