質問編集履歴

3

内容変更

2018/07/31 06:00

投稿

s_ogawa
s_ogawa

スコア38

test CHANGED
File without changes
test CHANGED
@@ -198,35 +198,35 @@
198
198
 
199
199
  $.getJSON("./sample.json",function(list){
200
200
 
201
- var list = color_quad_list;
201
+ var arry = list;
202
202
 
203
203
  var numbers = [];
204
204
 
205
- for (var i = 0; i < list.length; i++) {
205
+ for (var i = 0; i < arry.length; i++) {
206
206
 
207
207
  numbers.push(Math.random());
208
208
 
209
209
  }
210
210
 
211
- var atRandom = list.sort(function (a, b) {
211
+ var atRandom = arry.sort(function (a, b) {
212
-
212
+
213
- return numbers[list.indexOf(a)] - numbers[list.indexOf(b)];
213
+ return numbers[arry.indexOf(a)] - numbers[arry.indexOf(b)];
214
214
 
215
215
  });
216
216
 
217
- for(var i in list) {
217
+ for(var i in atRandom) {
218
218
 
219
219
  var h = '<li>'
220
220
 
221
- + list[i].area
221
+ + atRandom[i].area
222
222
 
223
223
  + '<ul>';
224
224
 
225
- for(var j in list[i].city){
225
+ for(var j in atRandom[i].city){
226
226
 
227
227
  h += '<li>'
228
228
 
229
- + list[i].city[j].name
229
+ + atRandom[i].city[j].name
230
230
 
231
231
  + '</li>';
232
232
 

2

内容追記

2018/07/31 06:00

投稿

s_ogawa
s_ogawa

スコア38

test CHANGED
File without changes
test CHANGED
@@ -177,3 +177,73 @@
177
177
 
178
178
 
179
179
  id="wrap"直下のli要素の並びをランダムに表示させるようにしたいのですが、どのようにすればいいのかご教授いただけますと幸いです。
180
+
181
+
182
+
183
+
184
+
185
+ ---
186
+
187
+
188
+
189
+
190
+
191
+ 【解決後のjs】
192
+
193
+ ```ここに言語を入力
194
+
195
+ <script>
196
+
197
+ $(function(){
198
+
199
+ $.getJSON("./sample.json",function(list){
200
+
201
+ var list = color_quad_list;
202
+
203
+ var numbers = [];
204
+
205
+ for (var i = 0; i < list.length; i++) {
206
+
207
+ numbers.push(Math.random());
208
+
209
+ }
210
+
211
+ var atRandom = list.sort(function (a, b) {
212
+
213
+ return numbers[list.indexOf(a)] - numbers[list.indexOf(b)];
214
+
215
+ });
216
+
217
+ for(var i in list) {
218
+
219
+ var h = '<li>'
220
+
221
+ + list[i].area
222
+
223
+ + '<ul>';
224
+
225
+ for(var j in list[i].city){
226
+
227
+ h += '<li>'
228
+
229
+ + list[i].city[j].name
230
+
231
+ + '</li>';
232
+
233
+ }
234
+
235
+ h += '</ul>'
236
+
237
+ + '</li>';
238
+
239
+ $("#wrap").append(h);
240
+
241
+ }
242
+
243
+ });
244
+
245
+ });
246
+
247
+ </script>
248
+
249
+ ```

1

内容追記

2018/07/31 05:46

投稿

s_ogawa
s_ogawa

スコア38

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 【HTML】
5
+ 【HTML(js)
6
6
 
7
7
  ```ここに言語を入力
8
8
 
@@ -14,40 +14,166 @@
14
14
 
15
15
  $(function(){
16
16
 
17
- $.getJSON("./sample.json",function(list){
17
+ $.getJSON("./sample.json",function(list){
18
18
 
19
- for(var i in list) {
19
+ for(var i in list) {
20
20
 
21
- var h = '<li>'
21
+ var h = '<li>'
22
22
 
23
- + list[i].area
23
+ + list[i].area
24
24
 
25
- + '<ul>';
25
+ + '<ul>';
26
26
 
27
- for(var j in list[i].city){
27
+ for(var j in list[i].city){
28
28
 
29
- h += '<li>'
29
+ h += '<li>'
30
30
 
31
- + list[i].city[j].name
31
+ + list[i].city[j].name
32
32
 
33
- + '</li>';
33
+ + '</li>';
34
34
 
35
- }
35
+ }
36
36
 
37
- h += '</ul>'
37
+ h += '</ul>'
38
38
 
39
- + '</li>';
39
+ + '</li>';
40
40
 
41
- $("#wrap").append(h);
41
+ $("#wrap").append(h);
42
42
 
43
- }
43
+ }
44
44
 
45
- });
45
+ });
46
46
 
47
- });
47
+ });
48
48
 
49
- </script>
49
+ </script>
50
50
 
51
51
  </ul>
52
52
 
53
53
  ```
54
+
55
+
56
+
57
+ 【JSON】
58
+
59
+ ```ここに言語を入力
60
+
61
+ [
62
+
63
+ {
64
+
65
+ "area": "東北",
66
+
67
+ "city": [
68
+
69
+ {"name": "青森"},
70
+
71
+ {"name": "秋田"},
72
+
73
+ {"name": "盛岡"},
74
+
75
+ {"name": "仙台"}
76
+
77
+ ]
78
+
79
+ },
80
+
81
+ {
82
+
83
+ "area": "関東",
84
+
85
+ "city": [
86
+
87
+ {"name": "東京"},
88
+
89
+ {"name": "埼玉"},
90
+
91
+ {"name": "千葉"}
92
+
93
+ ]
94
+
95
+ },
96
+
97
+ {
98
+
99
+ "area": "近畿",
100
+
101
+ "city": [
102
+
103
+ {"name": "大阪"},
104
+
105
+ {"name": "神戸"},
106
+
107
+ {"name": "京都"}
108
+
109
+ ]
110
+
111
+ }
112
+
113
+ ]
114
+
115
+ ```
116
+
117
+
118
+
119
+ 【出力後のHTML】
120
+
121
+ ```ここに言語を入力
122
+
123
+ <ul id="wrap">
124
+
125
+ <li>東北
126
+
127
+ <ul>
128
+
129
+ <li>青森</li>
130
+
131
+ <li>秋田</li>
132
+
133
+ <li>盛岡</li>
134
+
135
+ <li>仙台</li>
136
+
137
+ </ul>
138
+
139
+ </li>
140
+
141
+ <li>関東
142
+
143
+ <ul>
144
+
145
+ <li>東京</li>
146
+
147
+ <li>埼玉</li>
148
+
149
+ <li>千葉</li>
150
+
151
+ </ul>
152
+
153
+ </li>
154
+
155
+ <li>近畿
156
+
157
+ <ul>
158
+
159
+ <li>大阪</li>
160
+
161
+ <li>京都</li>
162
+
163
+ <li>神戸</li>
164
+
165
+ </ul>
166
+
167
+ </li>
168
+
169
+ </ul>
170
+
171
+ ```
172
+
173
+
174
+
175
+ 配列の値をランダムに表示させるようにしたところ、変数hに入っている文字「<、u、l、」単位でランダムに表示されてしまい、for文でループさせているブロック(id="wrap"直下のli要素)単位で表示させるのが実現したいことです。そもそも、上記のようなアプローチではなく他の方法を検討する必要があるのかもしれませんが、、
176
+
177
+
178
+
179
+ id="wrap"直下のli要素の並びをランダムに表示させるようにしたいのですが、どのようにすればいいのかご教授いただけますと幸いです。