私のコードでは繰り返しは減らしたいが運がないとしている。私はコードを、その機能を試して動作させるための最も単純な機能にまで減らしました。変数を使用してjavascriptの繰り返しを減らそうとしています
アイデア名の最後の2文字は、以前に宣言された変数と同じ文字で、古い変数を参照するために使用されます。
アラートを使用して、適切な出力が得られているかどうかをテストし、アラートウィンドウが「E1」とポップアップすることを確認しました。だから私はそれを試して使用するときになぜそれが効かないのか、本当にわかりません。
E1 = new Audio('audio/E1.ogg');
$('#noteE1').click(function() {
var fileName = this.id.slice(4);
//alert(fileName); used to test output
fileName.play();
$('#note' + fileName).addClass('active');
});
I代わりfileNameにの元の変数E1を使用する場合、コード・ブロックが動作します。 fileNameを使用したいのですが、私はこの機能を各要素に対して繰り返す代わりに、クリックしたときに複数の要素に対して機能させたいと考えています。
どうすればこの作品を作成できますか?私は何が欠けていますか?
ありがとうございました。
私はあなたの最初の提案を試みましたが、残念ながらそれは動作しませんでした。ファイルは再生されません。 – tw16
+1、私は 'id'のことについて同意しません。とにかくIDは固有でなければならず、 'ファイル 'にインデックスを付けるのにそれを使わない特別な理由はなく、' data-'属性を追加するだけでマークアップのサイズが増えるだけです。 –
@ tw16:* "ファイルは再生されませんでした" * Felixのコードでは、わずかな構文エラーが修正されました( 'E1:...'行の最後には '; 'があってはいけません)。アップデートをお試しください。構文エラー以外の推奨事項は、バングオンです。 –