document.getElementsByName()
や document.getElementById()
などを使用してページから NodeList を取得して各DOMの各Node を取得してから、
取得した各Nodeを連想配列に詰めてJSON化しようとしているのですが、
Nodeの値を取得するのに各Nodeの defaultValue
プロパティを見なければいけませんよね?
(参考:NodeList https://developer.mozilla.org/ja/docs/Web/API/NodeList)
それで連想配列に Node のまま詰めた後、それらの要素を .defaultValue
を見たものに変換しようとしたのですが、Array については map() の情報を見つけられましたが、連想配列(オブジェクト)については見つけられませんでした。
何かしらスマートなやり方はありませんでしょうか?
最終的にその連想配列を window.JSON.stringify()
に渡してJSON化しようと思っています。
javascript
1(function(d) { 2 var id = d.querySelector('[name=item_id]'), 3 n = d.querySelector('[name=item_name]'), 4 c = d.querySelector('[name=catch_copy]'), 5 p = d.querySelector('[name=price]'), 6 j = d.querySelector('[name=rcatalog_id]'), 7 c1 = d.querySelector('[name=category_1]'), 8 c2 = d.querySelector('[name=category_2]'), 9 c3 = d.querySelector('[name=category_3]'), 10 c4 = d.querySelector('[name=category_4]'), 11 c5 = d.querySelector('[name=category_5]'), 12 cc = d.querySelector('#catalog_caption'), 13 if (id != null) { 14 //連想配列に取得した要素を詰める 15 var o = { 16 "id": id.defaultValue, 17 "name": n.defaultValue, 18 "catch_copy": c.defaultValue, 19 "price": p.defaultValue, 20 "jan": j.defaultValue, 21 "body": cc.defaultValue, 22 "category1": c1.defaultValue, 23 "category2": c2.defaultValue, 24 "category3": c3.defaultValue, 25 "category4": c4.defaultValue, 26 "category5": c5.defaultValue, 27 }; 28 // いちいち各要素でやるのではなく以下のような書き方にしたい 29 // (o にそのまま Node を加えた後、まとめて変換するみたいにしたい。) 30 // o.map(function(key,value){return value.defaultValue}) 31 32 console.log(window.JSON.stringify(o)) 33 } 34})(document);
回答2件
あなたの回答
tips
プレビュー