首頁>Program>source

可序列化屬性定義為:

  • When you set a property of the element, it will be reflected in serialization queries such as getAttribute 您可以看到DOM Inspector中的更改
  • 当你得到 .innerHTML 元素的父节點的元素,返迴的html字元串將包含所有可序列化的屬性,作為其對應的屬性

我製作了一个頁面,看起来它像在可靠地print了 input所有可序列化屬性的表格 Chrome和Firefox中的元素:http://jsfiddle.net/tEVLp/16/。 自定義屬性永远無法序列化,因此在firefox webkitSpeech中 等不能序列化.用镀铬測試以获得最佳結果。

所有布林值都是 true 因為 false的序列化 屬性就是缺少该屬性,该屬性在測試中為假阴性。

所以我的問题是,為什麼不像 .value這樣的屬性 和 .checked 可序列化?

从技術上讲,两者都是可序列化的. .value 只是一个字元串,瀏覽器在序列化其他布林屬性(例如 .readOnly)時没有問题 和 .disabled

我最好的猜測是,自从 .defaultValue 序列化為 "value" 屬性和 .defaultChecked 序列化為 "checked" -屬性,將会發生冲突,因此 .value.checked 無法序列化.在這種情况下,為什麼要 為此選擇的,而不是反映当前更有用的 defaultX的那些 和 .value 狀態?

.checked
最新回復
  • 5月前
    1 #

    輸入元素的規範定義了確切的行為.从這裏開始阅讀(在此之前,先定義DOM介面,屬性和型別)。

    簡明摘要( value 的定義与 checked類似 ,為簡便起见,我將解釋 value 仅)。

    "财产" value 反映值def
    "屬性" value 反映值內容屬性def

      The attribute defines the default value property(ref). This value is also reflecteddefby the defaultValue 屬性(參考)。

      設置value屬性後,value屬性將更改(參考)*。

      措辞非常簡潔.我跳過了一个重要的细节.此時規格非常清晰,因此我只引用 dirty value flag 部分:

      Each input element has a boolean dirty value flag .肮脏的value 建立元素時,標志必须最初設置為false,並且 每当使用者与控制元件中的控制元件互動時,必须將其設置為true 更改值的方式。

      值內容屬性给出輸入的預設值 元件.添加,設置或删除值內容屬性後, 如果控制元件的脏值標志為false,則使用者代理必须設置 元素的值到value內容屬性的值, 如果有一个,否則返迴空字元串,然後執行 当前值清理演算法(如果已定義)。

      wy

      valuechecked 屬性与HTML屬性不對應,因此無法將其序列化為HTML.至於為什麼一个 defaultX 屬性對映到 x 屬性,我不確定.另一種選擇,屬性 x 對映到 x 屬性並具有另一个屬性,例如 currentX 表示当前值似乎不太直观,因為通常指令碼比預設值更需要当前值。

  • java:在執行時(動態)建立簡單的POJO類(位元組)
  • r:删除重複項,使條目具有最大绝對值