前提・実現したいこと
配列にならって、文字を置換し、置換した文字それぞれにclass名とonmouseoverのfunction名を割り当てたい。
例)
kiiro
↓
new_kiiroに置換
------------------------------ここまでは正常に作動
・class = "click2"
・onmouseover = "open_window2"
の要素を追加したい。
配列arr2のコードはそのままに、後付けでclass名等を指定する方法を探しています。
発生している問題・エラーメッセージ
//*〜//*内のプログラムが稼働しなく、class名とonmouseover要素が追加できません。
変数 i を用いたclass名が設定できません。
該当のソースコード
javascript
1//配列は大量にあることを想定 2 var arr1 = [ 3 4 /aka/g, 5 /ao/g, 6 /kiiro/g, 7 ]; 8 9 var arr2 = [ 10 "new_aka", 11 "new_blue2", 12 "new_yellow2", 13 ]; 14 15//id:outputの文章を、上記の配列にならって置換 16 $('#output').each(function(){ 17 for(var i=0, len=arr1.length; i<len; i++){ 18 var txt = $(this).html(); 19 $(this).html( 20 txt.replace(arr1[i], 21 '<a class = "click" + arr2[i] + '</a>') 22 ); 23 24//* 25 $(".click" + i).attr('onmouseover','open_window'+ i +'()'); 26 $(".click"+ i).addClass(".click" + i +1); 27 $(".click" + i).removeClass(""); 28//* 29 } 30 });; 31 32//下のような関数を設定し、マウスが乗ると、文字の色が背景色として出るようにしたい。 33function open_window0(){ 34 var elements = document.getElementsByClassName('.click0'); 35 for(e=0;e<elements.length;e++){ 36 elements[e].style.backgroundColor = "red" 37 } 38 39function open_window1(){ 40 var elements = document.getElementsByClassName('.click1'); 41 for(e=0;e<elements.length;e++){ 42 elements[e].style.backgroundColor = "blue" 43 } 44//・・・と続いていきます 45 46
試したこと
//*〜//*内を,、具体的な名前[.addClass(".click1")など]に設定した場合は稼働しましたが、iを用いて各Classの追加とonmouseoverのfunction名をつけることができませんでした。
attrやaddclassの()内に問題があると思うのですが、[i]を用いた命名の方法がわかりませんでした。
プログラミング初心者で、的外れなこともあるかもしれませんがよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。