举例来讲

我们现在有一个input#demo

<input id="demo" value="attr">

- Attribute和Property都被翻译成“属性”

- "value"就是input#demo的属性之一

- 也就是说,没错,就像你想的一样

- input#demo的 Attribute “value"值为"attr”

- input#demo的 Property “value"值同为"attr”


这时候你可能会问了:什么时候他们不一样?


wendehao!

当我们使用如下js代码对input#demo进行操作后

document.getElementbyId('demo').value='changed';

此时打开你浏览器的F12(Chrome的Devtool,FireFox的Firebug等等)

你会发现:

修改前是这样的

修改后是这样的

???你在逗我呢吧

慌 不要慌 且看页面

修改前是这样的

修改后是这样的


没错 聪明的你可能已经想到了

.value = 'changed'只修改了Attr与Prop之中的一个


.value方法修改的是input#demo的Property

而当我们使用如下js代码时

document.getElementbyId('demo').setAttribute('value','changed');

此时你会发现更诡异的事情是

页面的值并没有发生改变

但是打开你的F12,你会发现value值发生了变化

得出结论

.setAttribute()方法修改的是input#demo的Attribute


在这里引用一段 -T大大- 博客里的文字来更好的阐述这两者的区别

原文链接:http://blog.csdn.net/wangji5850/article/details/50925042 //图片请前往原文查看

此问题归根结底是由于DOM的property和attribute的区别:

attribute

input节点有很多属性(attribute):‘type’,’id’,’value’,’class’以及自定义属性,在DOM中有setAttribute()和getAttribute()读写DOM树节点的属性(attribute)

PS:在这里的getAttribute方法有一个潜规则,部分属性(input的value和checked)通过getAttribut取到的是初始值,这个就很好的解释了图2结果为什么为2。

property

JavaScript获取到的DOM节点对象,比如input
你可以将他看作为一个基本的js对象,这个对象包括很多属性(property),比如“value”,“className”以及一些方法,setAttribute,getAttribute,onclick等,值得注意的是对象的value的属性(property)取值是跟着输入框内的当前值一起更新的,这解释了图1中7为什么为200了。
所有在日常的工作中,推荐是使用 property,这样事情处理起来比较简单一些,attribute永远是字符串。。


如果我的文章有帮上什么忙并且您也愿意赏个脸 就扫码领个红包吧(~ ̄▽ ̄)~

Property(prop)和Attribute(attr)的区别相关推荐

  1. prop和attr的区别

    一.attr和prop含义的区别 attr 是从页面搜索获得元素值,所以页面必须明确定义元素才能获取值,相对来说较慢. prop是从属性对象中取值,属性对象中有多少属性,就能获取多少值,不需要在页面中 ...

  2. jquery中prop()方法和attr()方法

    接着上一篇笔记的疑惑,找了下prop()方法和attr()方法的区别.原来query1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. 大 ...

  3. attribute attr prop 区别

    attr 与 prop的区别是什么? 这篇微博解释的很清楚 那么,什么时候使用attr(),什么时候使用prop()? *添加属性名称该属性就会生效应该使用prop(); *是有true,false两 ...

  4. jquery中prop()方法和attr()方法的区别浅析

    引用:http://www.jb51.net/article/41170.htm 官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该 ...

  5. javascript prop和attr的区别

    在网上找了一些资料,通过自己去寻找,尝试,此次做一次总结. 1/  attr()是jQuery 1.0版本就有的函数,    prop()是jQuery 1.6版本新增的函数.毫无疑问,在1.6之前, ...

  6. prop和attr的区别-jQuery

    今天简单说下prop和attr在设置,获取和删除属性时的区别: 1.设置属性 为了便于看到效果,先在网页中写入ul标签,里面插入属性title,如下: <ul><li title=& ...

  7. jquery中prop()方法和attr()方法的区别

    tofixed: 四舍五入为指定小数位数的数字 tofixed(number)  tofixed(2) 意四舍五入的位数为两位 jQuery 1.6 开始新增了一个方法 prop(); 1.添加属性名 ...

  8. getAttribute() 与 attr() 的区别

    https://blog.csdn.net/xiphap/article/details/79397060 一直以为 getAttribute() 和 attr() 都是获取元素属性的方法,只是一种是 ...

  9. attribute与parameter区别

    request.getParameter取得Web客户端到web服务端的http请求数据(get/post),只能是string类型的,而且HttpServletRequest没有对应的setPara ...

最新文章

  1. Python 内部:可调用对象是如何工作的
  2. 源代码管理-SVN自动更新
  3. 定义[nextTick、事件循环]
  4. 从零起步到Linux运维经理,你必须管好的23个细节
  5. 北京大学计算机学院周磊,马秀莉-北京大学信息科学技术学院
  6. Spring在多线程中bean的注入问题
  7. 如何配置RadASM
  8. 用python语言实现人工智能猴子摘香蕉的问题_人工智能猴子香蕉问题
  9. python 网格交易源码_文华财经网格交易源码
  10. [bzoj4540][莫队算法]序列
  11. Creo9.0 绘制中心线
  12. linux 库全局变量_C语言开发单片机为什么大多数都采用全局变量的形式?
  13. 计算机组装硬件要求,组装电脑必懂的硬件知识,全是干货,教你选购硬件不求人...
  14. 深度学习 tensorflow 三维矩阵乘法(batch 迭代必须搞懂的矩阵乘法,维度增加)
  15. 社区儿童计算机活动总结,幼儿园小班的社区活动总结
  16. 《Reading Wikipedia to Answer Open-Domain Questions》浅析
  17. day17_自动化的框架搭建
  18. android底层开发工具,Android Developer Tools(开发人员工具)
  19. 各个时区对应的时差表 及 python中时区获取方式(支持夏令时)
  20. 计算机图形学实验源码_计算机图形自动可微:MIT学神微分太极框架开源,论文被ICLR接收...

热门文章

  1. 分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)解释说明
  2. 【信息安全】一文读懂 “3保1评” 等保、分保、关保、密评
  3. JDK和cglib动态代理原理详解
  4. iTab新标签页, 一款个性化的起始页插件
  5. 移动端CAD看图APP,快速查看CAD图纸
  6. 移动端自适应布局和响应式页面兼容移动端布局
  7. Cocos Creator多人对战联网游戏快速开发实例(附源码)
  8. Vite内网ip访问,两种配置方式
  9. 小米MIX4相机技术揭秘:MIPI D-PHY接口知多少?
  10. 修改Oracle用户默认表空间