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

回答編集履歴

10

誤字修正

2018/11/05 03:02

投稿

colling
colling

スコア798

answer CHANGED
@@ -120,7 +120,7 @@
120
120
  ---- 追記----
121
121
  質問のコードをいじってたら、何がやりたいのかわかりました。
122
122
  `<!--ランダムに表示する処理-->`の中に入っているスクリプトの`$(function(){}`は、domを読み終わってからの処理にする必要がないので不要です。
123
- 同じスクリプトの中の、`for(i=0; i< 1; i++){}`は、配列がすでにランダムになっていますので、[0]だけ取り出せばいいので、`$("#random").append('<div>' + arr[0] +'</div>');`とか着替えることができます。
123
+ 同じスクリプトの中の、`for(i=0; i< 1; i++){}`は、配列がすでにランダムになっていますので、[0]だけ取り出せばいいので、`$("#random").append('<div>' + arr[0] +'</div>');`と~~か着替える~~書き換えることができます。
124
124
  これで毎回、書き換えられ、波形も同じものが表示されます。
125
125
 
126
126
  ```html

9

修正 ちょい修正

2018/11/05 03:02

投稿

colling
colling

スコア798

answer CHANGED
@@ -172,7 +172,7 @@
172
172
  $("#random").append('<div>' + arr[0] +'</div>');//---- 配列の[0]だけをappendして表示
173
173
  /*----- ここ付け足し -----*/
174
174
  console.log(arr[0]);//ログ出力
175
- audFile = $(arr[0]).eq(4)[0].getAttribute("src");//------------------------------ここでグローバル変数に入れる
175
+ var audFile = $(arr[0]).eq(4)[0].getAttribute("src");//------------------------------ここで変数に入れる
176
176
  console.log(audFile);//ログ出力
177
177
  </script>
178
178
 
@@ -204,8 +204,6 @@
204
204
  </button>
205
205
  </div>
206
206
 
207
-
208
-
209
207
  <script language="JavaScript">
210
208
  var wavesurfer = WaveSurfer.create({
211
209
  barWidth: '1',

8

追記

2018/11/04 10:32

投稿

colling
colling

スコア798

answer CHANGED
@@ -114,5 +114,112 @@
114
114
 
115
115
  </body>
116
116
  </html>
117
+ ```
117
118
 
119
+
120
+ ---- 追記----
121
+ 質問のコードをいじってたら、何がやりたいのかわかりました。
122
+ `<!--ランダムに表示する処理-->`の中に入っているスクリプトの`$(function(){}`は、domを読み終わってからの処理にする必要がないので不要です。
123
+ 同じスクリプトの中の、`for(i=0; i< 1; i++){}`は、配列がすでにランダムになっていますので、[0]だけ取り出せばいいので、`$("#random").append('<div>' + arr[0] +'</div>');`とか着替えることができます。
124
+ これで毎回、書き換えられ、波形も同じものが表示されます。
125
+
126
+ ```html
127
+ <!DOCTYPE html>
128
+ <html>
129
+ <head>
130
+ <link href="style.css" rel="stylesheet" type="text/css"/>
131
+ <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
132
+
133
+ <title>英語発音矯正</title>
134
+ <meta name="Description" content="英語発音矯正に向けたWebサイト" />
135
+ <meta name="Keywords" content="英語,発音,Webサイト,HTML,発音矯正,英語発音" />
136
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
137
+
138
+ <script type="text/javascript">google.load("jquery","1.7");</script>
139
+ </head>
140
+ <body>
141
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/1.2.3/wavesurfer.min.js"></script>
142
+
143
+
144
+ <h2>英語発音矯正に向けたWebサイト</h2>
145
+ <div id="center">
146
+ <div id="wrapper">
147
+ <p>ランダムで単語を表示</p><br>
148
+
149
+ <!--ランダムで表示する単語-->
150
+ <div id="random">
151
+ <div><p><span class="red">サイ</span>トスィーイング</p><p>S<span class="red">igh</span>tsheeing</p><p>観光</p><p>sáitsìːiŋ</p><audio src="voice/sightseeing.mp3" controls alt=""></div>
152
+ <div><p><span class="red">エア</span>ポート</p><p><span class="red">Air</span>port</p><p>空港</p><p> éəpɔ`ːt</p><audio src="voice/airport.mp3" controls alt="何か"></div>
153
+ <div><p>アカモ<span class="red">デイ</span>ション</p><p>Accommo<span class="red">da</span>tion</p><p>宿泊施設</p><p>əkɑ`mədéiʃən</p><audio src="voice/accommodation.mp3" controls alt="何か"></div>
154
+ <div><p>ディ<span class="red">レ</span>クション</p><p>Di<span class="red">re</span>ction</p><p>方向、方角</p><p>dirékʃən</p><audio src="voice/direction.mp3" controls alt="何か"></div>
155
+ </div><!--random-->
156
+ </div><!--wrapper-->
157
+ <br>
158
+
159
+ <!--ランダムに表示する処理-->
160
+ <script type="text/javascript">
161
+ var arr = [];
162
+ // randomの中にある要素を、push()で要素の中身を配列に追加します。
163
+ $("#random div").each(function(){
164
+ arr.push($(this).html());
165
+ });
166
+ //sort()とMath.random()を使ってランダムに並び替えます。
167
+ arr.sort(function(){
168
+ return Math.random() - Math.random();
169
+ });
170
+ // 並び替えた後は、randomの中身を空にする。
171
+ $("#random").empty();
172
+ $("#random").append('<div>' + arr[0] +'</div>');//---- 配列の[0]だけをappendして表示
173
+ /*----- ここ付け足し -----*/
174
+ console.log(arr[0]);//ログ出力
175
+ audFile = $(arr[0]).eq(4)[0].getAttribute("src");//------------------------------ここでグローバル変数に入れる
176
+ console.log(audFile);//ログ出力
177
+ </script>
178
+
179
+ </div>
180
+
181
+ <!--更新ボタンの処理-->
182
+ <form>
183
+ <input type="button" class="btn_btn" value="更新" onclick="koshin()">
184
+ </form>
185
+ <p>更新ボタンを押して様々な単語を発音して正しい発音を身に付けましょう</p>
186
+ <br>
187
+ <script>
188
+ function koshin(){
189
+ location.reload();
190
+ }
191
+ </script>
192
+
193
+ <br><br><h4>正しい音声の波形です</h4>
194
+
195
+ <!--波形の処理-->
196
+ <div id="waveform"></div>
197
+ <div class="controls">
198
+ <button class="btn btn-primary" onclick="wavesurfer.playPause()">
199
+ <i class="glyphicon glyphicon-play"></i>
200
+ Play
201
+ /
202
+ <i class="glyphicon glyphicon-pause"></i>
203
+ Pause
204
+ </button>
205
+ </div>
206
+
207
+
208
+
209
+ <script language="JavaScript">
210
+ var wavesurfer = WaveSurfer.create({
211
+ barWidth: '1',
212
+ audioRate: '0.6',
213
+ container: '#waveform',
214
+ waveColor: 'red',
215
+ progressColor: 'purple',
216
+ height: '50'
217
+ });
218
+ console.log(audFile);//ログ出力
219
+ wavesurfer.load(audFile);//------- ここ書き換え
220
+
221
+ </script>
222
+
223
+ </body>
224
+ </html>
118
225
  ```

7

修正 ちょい修正

2018/11/04 10:26

投稿

colling
colling

スコア798

answer CHANGED
@@ -1,9 +1,7 @@
1
1
  `<div id="random">`の中に入っている`<audio>`のsrc属性を取りたいということでしたら、`arr[i]`からこのようにして取り出すことができます。
2
2
 
3
3
  ```javascript
4
- var data = $(arr[i]).eq(4)[0].src;
5
- var baseURI = $(arr[i]).eq(4)[0].baseURI;
6
- audFile = data.replace(baseURI,'');//グローバル変数 audFileに入れる
4
+ audFile = $(arr[i]).eq(4)[0].getAttribute("src");//グローバル変数 audFileに入れる
7
5
  ```
8
6
 
9
7
  ただ、`$(function(){`の中に入っちゃっているので、`wavesurfer.load()`の部分が先に表示されているのでタイミング的に参照できません。

6

修正 ちょい修正

2018/11/04 04:30

投稿

colling
colling

スコア798

answer CHANGED
@@ -65,6 +65,7 @@
65
65
  $("#random").append('<div>' + arr[i] +'</div>');
66
66
  }
67
67
  /*----- ここ付け足し -----*/
68
+ console.log(arr[i]);
68
69
  audFile = $(arr[i]).eq(4)[0].getAttribute("src");//------------------------------ここでグローバル変数に入れる
69
70
  console.log(audFile);
70
71
  /*----- ここまで付け足し -----*/

5

修正 ちょい修正

2018/11/04 04:27

投稿

colling
colling

スコア798

answer CHANGED
@@ -47,7 +47,6 @@
47
47
 
48
48
  <!--ランダムに表示する処理-->
49
49
  <script type="text/javascript">
50
- //var audFile = '';//---------------------------------グローバル変数として定義
51
50
  $(function(){
52
51
  var arr = [];
53
52
  // randomの中にある要素を、push()で要素の中身を配列に追加します。
@@ -66,9 +65,7 @@
66
65
  $("#random").append('<div>' + arr[i] +'</div>');
67
66
  }
68
67
  /*----- ここ付け足し -----*/
69
- var data = $(arr[i]).eq(4)[0].src;
70
- var baseURI = $(arr[i]).eq(4)[0].baseURI;//---------baseURI
71
- audFile = data.replace(baseURI,'');//------------------------------ここでグローバル変数に入れる
68
+ audFile = $(arr[i]).eq(4)[0].getAttribute("src");//------------------------------ここでグローバル変数に入れる
72
69
  console.log(audFile);
73
70
  /*----- ここまで付け足し -----*/
74
71
  });

4

修正

2018/11/04 04:25

投稿

colling
colling

スコア798

answer CHANGED
@@ -66,9 +66,9 @@
66
66
  $("#random").append('<div>' + arr[i] +'</div>');
67
67
  }
68
68
  /*----- ここ付け足し -----*/
69
- var data = $(arr[i]).eq(4)[0].src;//------------------------------ここでグローバル変数に入れる
69
+ var data = $(arr[i]).eq(4)[0].src;
70
70
  var baseURI = $(arr[i]).eq(4)[0].baseURI;//---------baseURI
71
- audFile = data.replace(baseURI,'');
71
+ audFile = data.replace(baseURI,'');//------------------------------ここでグローバル変数に入れる
72
72
  console.log(audFile);
73
73
  /*----- ここまで付け足し -----*/
74
74
  });

3

修正 ちょい修正

2018/11/02 11:05

投稿

colling
colling

スコア798

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  なので、波形表示部分も`$(function(){`で囲っちゃえば取り出せるかと思います。
12
12
 
13
- もう少しスマートなやり方があるかもしれませんが、これで動くんじゃないかなぁ。
13
+ もう少しスマートなやり方があるかもしれませんが、これで該当部分の取得はできるんじゃないかなぁ。
14
14
 
15
15
  ```html
16
16
  <!DOCTYPE html>

2

修正

2018/11/02 10:59

投稿

colling
colling

スコア798

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  audFile = data.replace(baseURI,'');//グローバル変数 audFileに入れる
7
7
  ```
8
8
 
9
- ただ、`$(function(){`の中に入っちゃっているので、波形表示の部分が先に表示されているのでタイミング的に参照できません。
9
+ ただ、`$(function(){`の中に入っちゃっているので、`wavesurfer.load()`の部分が先に表示されているのでタイミング的に参照できません。
10
10
 
11
11
  なので、波形表示部分も`$(function(){`で囲っちゃえば取り出せるかと思います。
12
12
 

1

修正

2018/11/02 10:58

投稿

colling
colling

スコア798

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  audFile = data.replace(baseURI,'');//グローバル変数 audFileに入れる
7
7
  ```
8
8
 
9
- ただ、`$(function(){`の中に入っちゃっているので、波形表示の部分でタイミング的にそのままは変数に入りません。
9
+ ただ、`$(function(){`の中に入っちゃっているので、波形表示の部分が先に表示されているのでタイミング的に参照ません。
10
10
 
11
11
  なので、波形表示部分も`$(function(){`で囲っちゃえば取り出せるかと思います。
12
12