可序列化属性定义为:
- 当您设置元素的属性时,它将反映在序列化查询中,例如
getAttribute
您可以在 DOM Inspector 中看到更改 - 当您获得
.innerHTML
元素的父节点的 时,返回的 html 字符串将包含所有可序列化的属性作为它们的属性对应物
我制作了一个页面,看起来它可靠地打印了input
Chrome 和 Firefox 中元素的所有可序列化属性的表格:http : //jsfiddle.net/tEVLp/16/。自定义属性永远不可序列化,因此在 FirefoxwebkitSpeech
等中不可序列化。在 chrome 中测试以获得最佳结果。
所有布尔值都是true
因为false
属性的序列化将缺少在测试中为假阴性的属性。
所以我的问题是,为什么不能序列化.value
和.checked
序列化之类的属性?
从技术上讲,两者都是可序列化的。.value
只是一个字符串,浏览器在序列化其他布尔属性(例如.readOnly
and )时没有问题.disabled
。
我最好的猜测是,由于.defaultValue
序列化为"value"
-attribute 并.defaultChecked
序列化为"checked"
-attribute,因此会发生冲突,因此
.value
和.checked
无法序列化。在那种情况下,为什么defaultX
选择这些而不是反映更有用的当前.value
和.checked
状态的那些?