HTML中的属性和属性有什么区别?

JavaScript HTML

JinJin

2020-03-23

在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。

查看jQuery 1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类:

  • 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。

  • 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。

有什么想法吗?

第2732篇《HTML中的属性和属性有什么区别?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
Mandy 2020.03.23

很好,这些是由w3c指定的。什么是属性,什么是属性 http://www.w3.org/TR/SVGTiny12/attributeTable.html

但目前attr和prop并没有太大不同,几乎相同

但是他们更喜欢道具

首选用法摘要

.prop()方法应用于布尔属性/属性以及html中不存在的属性(例如window.location)。所有其他属性(您可以在html中看到的属性)都可以并且应该继续使用.attr()方法进行操作。

好吧,实际上,如果您使用attr或prop或同时使用attr和prop,则不必更改任何东西,但是两者都可以工作,但我在自己的应用程序中看到prop在atrr没起作用的地方工作了,所以我使用了我的1.6 app prop =)

古一 2020.03.23

答案已经解释了如何不同地处理属性和属性,但是我真的想指出这是多么疯狂即使在某种程度上是规格。

疯狂的是,有些属性(例如id,class,foo,bar)仅在DOM中保留一种值,而某些属性(例如checked,selected)保留两个值;也就是说,值“加载时”和“动态状态”的值。(DOM是否应该完全代表文档的状态?)

绝对重要的是,两个输入字段(例如,文本复选框)的 行为必须完全相同如果文本输入字段没有保留单独的“加载时”值和“当前动态”值,为什么要选中该复选框?如果该复选框的确有两个值为checked属性,为什么它的classid属性没有两个值如果你希望改变的值文本 *输入*领域,期待与您的DOM(即“连载表示”),以变化,反映这种变化,为什么地球上,你会不会期望从同一输入的字段键入复选框 在检查的属性?

对我来说,“这是布尔属性”的区分只是没有任何意义,或者至少不是充分的理由。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android