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