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

質問編集履歴

5

追記の修正

2019/08/31 08:52

投稿

nanase21
nanase21

スコア144

title CHANGED
File without changes
body CHANGED
@@ -92,8 +92,11 @@
92
92
  もし原因についてお分かりでしたら、ご教示いただけると幸いです。
93
93
 
94
94
  ```js
95
- let int = 3;
96
95
  for (var i = 0; i < 2; i++) {
97
-   eval("let arr" + i + "=" + "document.getElementById(" + "`plan${i}`" + ") + ";");
96
+   eval("let arr" + i + "=" + "document.getElementById('" + `plan${i}` + "')" + ";");
98
97
  }
98
+
99
+ //=> arr0をすると下記のエラーになってしまいます。
100
+ // VM546:1 Uncaught ReferenceError: arr0 is not defined
101
+ // at <anonymous>:1:1
99
102
  ```

4

追記の修正

2019/08/31 08:51

投稿

nanase21
nanase21

スコア144

title CHANGED
File without changes
body CHANGED
@@ -94,6 +94,6 @@
94
94
  ```js
95
95
  let int = 3;
96
96
  for (var i = 0; i < 2; i++) {
97
-   eval("let arr" + i + "=" + "document.getElementById(" + "'plan'" + ").style.display" + "=" + "none" + ";");
97
+   eval("let arr" + i + "=" + "document.getElementById(" + "`plan${i}`" + ") + ";");
98
98
  }
99
99
  ```

3

試したことを追記

2019/08/31 08:46

投稿

nanase21
nanase21

スコア144

title CHANGED
File without changes
body CHANGED
@@ -84,4 +84,16 @@
84
84
  console.log(`TEXT: ${text} / VALUE: ${value}`);
85
85
  console.log(`txt_ID1: ${txt1.id}`);
86
86
  }
87
- ````
87
+ ````
88
+
89
+
90
+ #試していること
91
+ evalを使って、jsコードを生成しようとしたのですがシンタックスエラーになってしまいました。
92
+ もし原因についてお分かりでしたら、ご教示いただけると幸いです。
93
+
94
+ ```js
95
+ let int = 3;
96
+ for (var i = 0; i < 2; i++) {
97
+   eval("let arr" + i + "=" + "document.getElementById(" + "'plan'" + ").style.display" + "=" + "none" + ";");
98
+ }
99
+ ```

2

該当コードを追記

2019/08/31 08:37

投稿

nanase21
nanase21

スコア144

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,67 @@
21
21
  ```
22
22
 
23
23
  上記で、document. getElementByIdを生成することができました。
24
- 配列にdocumentを生成した場合、どのようにstyleを利かせばよいかご教示いただけると幸いです。
24
+ 配列にdocumentを生成した場合、どのようにstyleを利かせばよいかご教示いただけると幸いです。
25
+
26
+
27
+ ```slim
28
+ #plan
29
+ select#sample.form-control name="select" onchange="SendAjax(this);"
30
+ option value="plan" id="item" data-price="plan"
31
+ = 'item1'
32
+ option value="plan2" id="item2" data-price="plan2"
33
+ = 'item2'
34
+ option value="plan3" id="item3" data-price="plan3"
35
+ = 'item3'
36
+
37
+ input type="text" value="plan1" id="plan"
38
+ input type="text" value="plan2" id="plan1"
39
+ input type="text" value="plan3" id="plan2"
40
+ ```
41
+
42
+ ```js
43
+ //TODO: jsに書き換えたいな
44
+ var plan_item = $('#plan').children().length;
45
+ for(let i=0;i<plan_item;i++){
46
+ //ここをどうにかしたい。
47
+ document.getElementById(`plan${i}`).style.display = "none";
48
+ document.getElementById(`plan${i}`).style.display = "none";
49
+ document.getElementById(`plan${i}`).style.display = "none";
50
+ }
51
+
52
+ function SendAjax(obj)
53
+ {
54
+ // objはselectタグ
55
+ let idx = obj.selectedIndex;
56
+ let value = obj.options[idx].value // value
57
+ let text = obj.options[idx].text; // apper text
58
+
59
+ //ここもforで編集する予定
60
+ const txt1 = document.getElementById("item");
61
+ const txt2 = document.getElementById("item2");
62
+ const txt3 = document.getElementById("item3");
63
+
64
+
65
+ if(value != txt1.id || value != txt2.id || value != txt3.id)
66
+ {
67
+ txt1.style.display = "none";
68
+ txt2.style.display = "none";
69
+ txt3.style.display = "none";
70
+ }
71
+ if(value == txt1.id)
72
+ {
73
+ txt1.style.display = "block";
74
+ }
75
+ if(value == txt2.id)
76
+ {
77
+ txt2.style.display = "block";
78
+ }
79
+ if(value == txt3.id)
80
+ {
81
+ txt3.style.display = "block";
82
+ }
83
+
84
+ console.log(`TEXT: ${text} / VALUE: ${value}`);
85
+ console.log(`txt_ID1: ${txt1.id}`);
86
+ }
87
+ ````

1

一部コード追記

2019/08/31 08:25

投稿

nanase21
nanase21

スコア144

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,15 @@
10
10
  ``#plan``の配下にある、要素を取得して要素数分だけ``document.getElementById``を生成したい。
11
11
 
12
12
  **困っていること**
13
- 要素数分だけ、``document.getElementById``を生成する方法が分からない。
13
+ 要素数分だけ、``document.getElementById``を生成する方法が分からない。
14
+
15
+ ```js
16
+ let arr = [];
17
+ for(let i=0;i<price_itme;i++){
18
+ arr[i] = `document.getElementById(plan${i})`;
19
+ }
20
+ //=> ["document.getElementById(plan0)", "document.getElementById(plan1)"]
21
+ ```
22
+
23
+ 上記で、document. getElementByIdを生成することができました。
24
+ 配列にdocumentを生成した場合、どのようにstyleを利かせばよいかご教示いただけると幸いです。