【发布时间】:2011-10-23 18:58:18
【问题描述】:
问题是使用属性还是属性。
没有发现这个记录,所以已经运行了一些测试(铬 12):
属性属性
接受、替代、formMethod、formTarget、id、名称、占位符、类型、最大长度、大小 形式:方法、名称、目标、动作、编码类型- 可以设置属性或属性
- 将反映到属性或属性
- 异常 1:如果表单属性将首先查找该名称的元素 (!)
- 异常 2:动作属性使用值重写自身,将设置值传递给属性
- 异常 3:enctype 保持其完整性,但将设置值传递给属性
属性
值,自动对焦,选中,禁用,formNoValidate,多个,必需- 设置属性对属性没有影响
- 设置属性也设置属性
属性 => 属性
不定- 设置属性也设置属性
- 设置属性对属性没有影响
属性>
defaultValue、有效性、defaultChecked、只读 形式:novalidate- 设置属性或属性对其他没有影响
对我来说,这似乎是很随机的行为。
给定一个随机属性/值来应用到一个元素,这里是我想出的最好的规则(根据下面的 Tim Down(谢谢!)修改):
如果是类,使用
classList写入,使用className属性读取如果是表单,总是读取使用属性(并且要小心一点)
如果
typeof element[propName] != "undefined",使用属性,即element[attr]=val否则,使用属性,即
element.setAttribute(attr,val)
这是否接近正确?
注意:有趣的是,如果您有一个包含名为“novalidate”的元素的表单,是否甚至可以访问表单本身的novalidate 属性?
【问题讨论】:
标签: javascript dom code-generation