4

JSON.parse の出力が手元にある場合、そのオブジェクトを単一のエンティティとして DOM に格納する正当な方法はありますか?

すなわち

jsonObject = JSON.parse(何か);

jsonObject をいくつかの要素の (child || textNode || ???) として DOM に格納し、後でそれを取得して、取得直後に通常の方法でそのコンテンツにアクセスできるようにすることを検討したいと思います。

jsonObject.keyName

何十ものデータセット属性を追加して、後で一度に 1 つずつ抽出することを余儀なくされることは避けたいと思います。キーと値のペアが何十もある場合、これは大変な作業であり、効率が悪いように思えます。

4

4 に答える 4

4

データ属性は文字列である必要があり、オブジェクトを直接格納することはできません。そのため、JSON 文字列を解析せずに、JSON 文字列をデータセット属性に直接保存してください。

jQuery を使用する場合、その.data()メソッドはオブジェクトを受け取り、必要に応じて自動的に文字列化します。

オブジェクトを関連付ける要素すべてに ID がある場合、もう 1 つのオプションは、グローバル オブジェクトをテーブルとして使用し、要素の ID をキーオフすることです。

jsonTable[id] = jsonObject;
于 2013-07-15T02:08:47.067 に答える
1

TGHには正解があります。変数のままにしておきます。

別の方法は、 history.pushState() を使用して、ページへの URL とともに保存することです。これは、ユーザーが [戻る] ボタンをクリックして、json をそのページの値に復元できるようにしたい場合に役立ちます。

于 2013-07-15T02:18:35.937 に答える
1

ページのライフサイクルによって異なります。ページをリロードするつもりがない場合は、ページに JavaScript 変数としてそのままにしておくことをお勧めします。

生の JSON を非表示のフィールドまたはその他の非表示の DOM 要素に格納することも検討できます。ただし、ページを投稿すると、非表示のフィールドがサーバーに投稿されることに注意してください。

于 2013-07-15T01:55:45.380 に答える