質問編集履歴

5

追記の修正

2019/08/31 08:52

投稿

nanase21
nanase21

スコア144

test CHANGED
File without changes
test CHANGED
@@ -186,12 +186,18 @@
186
186
 
187
187
  ```js
188
188
 
189
- let int = 3;
190
-
191
189
  for (var i = 0; i < 2; i++) {
192
190
 
193
-   eval("let arr" + i + "=" + "document.getElementById(" + "`plan${i}`" + ") + ";");
191
+   eval("let arr" + i + "=" + "document.getElementById('" + `plan${i}` + "')" + ";");
194
192
 
195
193
  }
196
194
 
195
+
196
+
197
+ //=> arr0をすると下記のエラーになってしまいます。
198
+
199
+ // VM546:1 Uncaught ReferenceError: arr0 is not defined
200
+
201
+ // at <anonymous>:1:1
202
+
197
- ```
203
+ ```

4

追記の修正

2019/08/31 08:51

投稿

nanase21
nanase21

スコア144

test CHANGED
File without changes
test CHANGED
@@ -190,7 +190,7 @@
190
190
 
191
191
  for (var i = 0; i < 2; i++) {
192
192
 
193
-   eval("let arr" + i + "=" + "document.getElementById(" + "'plan'" + ").style.display" + "=" + "none" + ";");
193
+   eval("let arr" + i + "=" + "document.getElementById(" + "`plan${i}`" + ") + ";");
194
194
 
195
195
  }
196
196
 

3

試したことを追記

2019/08/31 08:46

投稿

nanase21
nanase21

スコア144

test CHANGED
File without changes
test CHANGED
@@ -171,3 +171,27 @@
171
171
  }
172
172
 
173
173
  ````
174
+
175
+
176
+
177
+
178
+
179
+ #試していること
180
+
181
+ evalを使って、jsコードを生成しようとしたのですがシンタックスエラーになってしまいました。
182
+
183
+ もし原因についてお分かりでしたら、ご教示いただけると幸いです。
184
+
185
+
186
+
187
+ ```js
188
+
189
+ let int = 3;
190
+
191
+ for (var i = 0; i < 2; i++) {
192
+
193
+   eval("let arr" + i + "=" + "document.getElementById(" + "'plan'" + ").style.display" + "=" + "none" + ";");
194
+
195
+ }
196
+
197
+ ```

2

該当コードを追記

2019/08/31 08:37

投稿

nanase21
nanase21

スコア144

test CHANGED
File without changes
test CHANGED
@@ -45,3 +45,129 @@
45
45
  上記で、document. getElementByIdを生成することができました。
46
46
 
47
47
  配列にdocumentを生成した場合、どのようにstyleを利かせばよいかご教示いただけると幸いです。
48
+
49
+
50
+
51
+
52
+
53
+ ```slim
54
+
55
+ #plan
56
+
57
+ select#sample.form-control name="select" onchange="SendAjax(this);"
58
+
59
+ option value="plan" id="item" data-price="plan"
60
+
61
+ = 'item1'
62
+
63
+ option value="plan2" id="item2" data-price="plan2"
64
+
65
+ = 'item2'
66
+
67
+ option value="plan3" id="item3" data-price="plan3"
68
+
69
+ = 'item3'
70
+
71
+
72
+
73
+ input type="text" value="plan1" id="plan"
74
+
75
+ input type="text" value="plan2" id="plan1"
76
+
77
+ input type="text" value="plan3" id="plan2"
78
+
79
+ ```
80
+
81
+
82
+
83
+ ```js
84
+
85
+ //TODO: jsに書き換えたいな
86
+
87
+ var plan_item = $('#plan').children().length;
88
+
89
+ for(let i=0;i<plan_item;i++){
90
+
91
+ //ここをどうにかしたい。
92
+
93
+ document.getElementById(`plan${i}`).style.display = "none";
94
+
95
+ document.getElementById(`plan${i}`).style.display = "none";
96
+
97
+ document.getElementById(`plan${i}`).style.display = "none";
98
+
99
+ }
100
+
101
+
102
+
103
+ function SendAjax(obj)
104
+
105
+ {
106
+
107
+ // objはselectタグ
108
+
109
+ let idx = obj.selectedIndex;
110
+
111
+ let value = obj.options[idx].value // value
112
+
113
+ let text = obj.options[idx].text; // apper text
114
+
115
+
116
+
117
+ //ここもforで編集する予定
118
+
119
+ const txt1 = document.getElementById("item");
120
+
121
+ const txt2 = document.getElementById("item2");
122
+
123
+ const txt3 = document.getElementById("item3");
124
+
125
+
126
+
127
+
128
+
129
+ if(value != txt1.id || value != txt2.id || value != txt3.id)
130
+
131
+ {
132
+
133
+ txt1.style.display = "none";
134
+
135
+ txt2.style.display = "none";
136
+
137
+ txt3.style.display = "none";
138
+
139
+ }
140
+
141
+ if(value == txt1.id)
142
+
143
+ {
144
+
145
+ txt1.style.display = "block";
146
+
147
+ }
148
+
149
+ if(value == txt2.id)
150
+
151
+ {
152
+
153
+ txt2.style.display = "block";
154
+
155
+ }
156
+
157
+ if(value == txt3.id)
158
+
159
+ {
160
+
161
+ txt3.style.display = "block";
162
+
163
+ }
164
+
165
+
166
+
167
+ console.log(`TEXT: ${text} / VALUE: ${value}`);
168
+
169
+ console.log(`txt_ID1: ${txt1.id}`);
170
+
171
+ }
172
+
173
+ ````

1

一部コード追記

2019/08/31 08:25

投稿

nanase21
nanase21

スコア144

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,25 @@
23
23
  **困っていること**
24
24
 
25
25
  要素数分だけ、``document.getElementById``を生成する方法が分からない。
26
+
27
+
28
+
29
+ ```js
30
+
31
+ let arr = [];
32
+
33
+ for(let i=0;i<price_itme;i++){
34
+
35
+ arr[i] = `document.getElementById(plan${i})`;
36
+
37
+ }
38
+
39
+ //=> ["document.getElementById(plan0)", "document.getElementById(plan1)"]
40
+
41
+ ```
42
+
43
+
44
+
45
+ 上記で、document. getElementByIdを生成することができました。
46
+
47
+ 配列にdocumentを生成した場合、どのようにstyleを利かせばよいかご教示いただけると幸いです。