teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

modify

2018/04/01 07:06

投稿

noc
noc

スコア73

title CHANGED
File without changes
body CHANGED
@@ -39,6 +39,7 @@
39
39
  "category5": c5.defaultValue,
40
40
  };
41
41
  // いちいち各要素でやるのではなく以下のような書き方にしたい
42
+ // (o にそのまま Node を加えた後、まとめて変換するみたいにしたい。)
42
43
  // o.map(function(key,value){return value.defaultValue})
43
44
 
44
45
  console.log(window.JSON.stringify(o))

3

修正

2018/04/01 07:06

投稿

noc
noc

スコア73

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
  ```javascript
14
- function(d) {
14
+ (function(d) {
15
15
  var id = d.querySelector('[name=item_id]'),
16
16
  n = d.querySelector('[name=item_name]'),
17
17
  c = d.querySelector('[name=catch_copy]'),

2

javascriptのコード片を追加

2018/04/01 07:03

投稿

noc
noc

スコア73

title CHANGED
File without changes
body CHANGED
@@ -7,4 +7,41 @@
7
7
  それで連想配列に Node のまま詰めた後、それらの要素を `.defaultValue` を見たものに変換しようとしたのですが、Array については map() の情報を見つけられましたが、連想配列(オブジェクト)については見つけられませんでした。
8
8
  何かしらスマートなやり方はありませんでしょうか?
9
9
 
10
- 最終的にその連想配列を `window.JSON.stringify()` に渡してJSON化しようと思っています。
10
+ 最終的にその連想配列を `window.JSON.stringify()` に渡してJSON化しようと思っています。
11
+
12
+
13
+ ```javascript
14
+ function(d) {
15
+ var id = d.querySelector('[name=item_id]'),
16
+ n = d.querySelector('[name=item_name]'),
17
+ c = d.querySelector('[name=catch_copy]'),
18
+ p = d.querySelector('[name=price]'),
19
+ j = d.querySelector('[name=rcatalog_id]'),
20
+ c1 = d.querySelector('[name=category_1]'),
21
+ c2 = d.querySelector('[name=category_2]'),
22
+ c3 = d.querySelector('[name=category_3]'),
23
+ c4 = d.querySelector('[name=category_4]'),
24
+ c5 = d.querySelector('[name=category_5]'),
25
+ cc = d.querySelector('#catalog_caption'),
26
+ if (id != null) {
27
+ //連想配列に取得した要素を詰める
28
+ var o = {
29
+ "id": id.defaultValue,
30
+ "name": n.defaultValue,
31
+ "catch_copy": c.defaultValue,
32
+ "price": p.defaultValue,
33
+ "jan": j.defaultValue,
34
+ "body": cc.defaultValue,
35
+ "category1": c1.defaultValue,
36
+ "category2": c2.defaultValue,
37
+ "category3": c3.defaultValue,
38
+ "category4": c4.defaultValue,
39
+ "category5": c5.defaultValue,
40
+ };
41
+ // いちいち各要素でやるのではなく以下のような書き方にしたい
42
+ // o.map(function(key,value){return value.defaultValue})
43
+
44
+ console.log(window.JSON.stringify(o))
45
+ }
46
+ })(document);
47
+ ```

1

NodeListのリンクを追加

2018/04/01 06:51

投稿

noc
noc

スコア73

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  取得した各Nodeを連想配列に詰めてJSON化しようとしているのですが、
3
3
  Nodeの値を取得するのに各Nodeの `defaultValue` プロパティを見なければいけませんよね?
4
4
 
5
+ (参考:NodeList [https://developer.mozilla.org/ja/docs/Web/API/NodeList](https://developer.mozilla.org/ja/docs/Web/API/NodeList))
6
+
5
7
  それで連想配列に Node のまま詰めた後、それらの要素を `.defaultValue` を見たものに変換しようとしたのですが、Array については map() の情報を見つけられましたが、連想配列(オブジェクト)については見つけられませんでした。
6
8
  何かしらスマートなやり方はありませんでしょうか?
7
9