HTML property 和 attribute 的区别
前端编程里,property 和 attribute 是一对极容易混淆的术语。
Angular 的属性绑定语法:
<img [src]="itemImageUrl">
上例中括号里的 src,是 img element 的属性,也就是属性绑定的目标属性。所谓目标属性,就是我们期望进行赋值的 DOM 属性。
在 Angular 属性绑定的英文文档里,有这样一句话:
In most cases, the target name is the name of a property, even when it appears to be the name of an attribute.
在 Angular 的中文网站里,上面这句话的翻译为:
在大多数情况下,目标的名称就是 Property 的名称,哪怕它看起来像 Attribute 的名称。
可见,中文翻译保留了 Property 和 Attribute 的原文。
方括号使得其等号右边传入的值被当作一个动态表达式进行求值,结果赋给目标属性。如果不加中括号,等号右边的值被当成字符串字面量处理。
Property 和 Attribute 的区别?
以 colspan 和 colSpan 为例,前者是 attribute,后者是 property.
看上述代码:
<tr><td colspan="{{1 + 1}}">Three-Four</td></tr>
会遇到如下错误消息:
Template parse errors:
Can’t bind to ‘colspan’ because it isn’t a known built-in property
意思是在 td 元素上找不到名叫 colspan 的 property.
Angular 的 property binding 和 Interpolation 只能在 property 上工作,而不是 attribute.
colspan 是 td 的 attribute 名称,而不是 property.
上面的例子需要纠正成:
<!-- Notice the colSpan property is camel case -->
<tr><td [colSpan]="1 + 1">Three-Four</td></tr>
另一个例子:
<!-- Bind button disabled state to `isUnchanged` property -->
<button [disabled]="isUnchanged">Disabled Button</button>
Reflecting properties to attributes
HTML properties 将它们的值作为 HTML attribute 反映回 DOM 是很常见的。
看下面这段 JavaScript 代码:
div.id = 'my-id';
div.hidden = true;
当 div 元素的 id 或者 hidden property 发生变化时,
这些变化也会通过 HTML 属性实时地同步到 HTML 源代码里。
<div id="my-id" hidden>
这就是所谓的 Reflecting properties to attributes.
attribute 对于以声明方式配置元素也很有用,并且某些 API(如 Accessibility 和 CSS 选择器)依赖于 attribute 来工作。
在您希望元素的 DOM 表示与其 JavaScript 状态保持同步的任何地方,反射属性都非常有用。
更多Jerry的原创文章,尽在:“汪子熙”:
HTML property 和 attribute 的区别相关推荐
- DOM中Property与Attribute的区别
property和attribute的汉语翻译几乎相同,都有"属性"的意义(这里姑且称attribute为"特性",以方便区分),而他们的取值也经常相同,但有时 ...
- JavaScript 中 Property 和 Attribute 的区别
转自:http://www.cnblogs.com/elcarim5efil/p/4698980.html property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(pro ...
- Property 和 Attribute 的区别(转)
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
- C#中Property和Attribute的区别
Attribute 字段 Property 属性(get;set;) 属性的正常写: private string name; public string Name { get { return na ...
- property和attribute的区别
property是指类向外提供的数据区域. 而attribute则是描述对象在编译时或运行时属性的,分为固有型和用户自定义型,其中用户自定义型可以利用Reflection在运行期获取. 这两者是有本质 ...
- css property 和 attribute 的区别
css property可以包含下列这些属性: Value: legal values & syntax Initial: initial value Applies to: elements ...
- 一个简单的例子学习 HTML 元素property和attribute的区别
源代码: <html> <style> </style><button disabled>Click</button> <button ...
- 【译】详解HTML中property和attribute的区别
翻看Vue API文档时发现v-bind有一个修饰符.prop比较特殊: .prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定. 文档还给了一个stack ov ...
- 区别C#中的两个属性(Property和Attribute)
区别C#中的两个属性(Property和Attribute) 在C#中有两个属性,分别为Property和Attribute,两个的中文意思都有特性.属性之间,但是用法上却不一样,为了区别,本文暂把P ...
最新文章
- ByteArrayOutputStream
- python 对excel文件进行分词并进行词频统计_python 词频分析
- kafka消息反复从头开始消费问题排查
- COSCon’20开源教育论坛介绍
- 2017c语言考核册答案,2017年电大《C语言程序设计》形成性考核册答案.doc
- 【数据库系统】元数据
- @scheduled注解配置时间_@Scheduled注解
- php之thinkphp3.2.3 文件访问路径,URL路由配置-与重定向
- UVA - 101 The Blocks Problem
- c语言软件下载与配置
- 这个方法可以实现自动抠图,快来get
- 怎样绘制漂亮的统计图表|不一样的折线图
- 创建线程-学到了4种方法
- 看巨人,学巨人,超巨人
- 认证 (authentication) 和授权 (authorization)小记
- 拉格朗日乘数法求可能极值
- linux还原数据库报错,RMAN还原数据库报错问题解决案例
- 热激发延迟荧光(TADF)材料ND-AC、CND-AC、NAI-BiFA、NAI-PhBiFA
- LAB4 PartA 多处理器支持和协作多任务处理
- putty+xming树莓派远程显示图片/图形界面
热门文章
- springboot报错---No identifier specified for entity: com.example.demo.entity.User
- ptaa乘以b_《C语言程序设计》实验作业--PTA顺序结构练习
- 让字跑起来的HTML5标签,HTML5:标记文字
- 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)
- 透过字节码分析java基本类型数组的内存分配方式。
- 推荐一款基于web的Unix系统管理工具webmin
- 如何禁止普通用户通过rsh登陆计算节点
- HttpClient的超时用法小记
- win 7开机要点用户名的解决方法
- 在项目中让Ajax面向对象 (二)