お世話になっております。
新人プログラマーです。
現在JavaScriptでUI開発をしております。
###前提・実現したいこと
表を用いて行選択をするために、行をクリックすると
背景色が変わるようなイベントを実装しています。
そこで、表にデータがないときに背景色が変わらないように
したいです。
###試していること
データがないときはimgタグを非表示にするようにしているので
いimgタグのstyleを参照するようにしたいと思っています。
###できていること
選択した行の背景色を変えること、もう一度クリックで元に戻すこと
選択可能数だけの背景色を変えること、表のデータ表示
###該当のソースコード
html
1<body onload="getJson();changeimg();pager()"> 2 略 3<tr class="even" onclick="Click_Sub(this)"> 4 <td width="40"><img id="gazo1" alt="pdffile"></td> 5 <td id="dataname1"><font size="3"></font></td> 6</tr> 7 略 8<script> 9 var count=0; //現在の選択数 10 var countmax=3; //選択可能数 11 var pagetop=0; //表示中ページの先頭データ 12 var datamax=5; //表示最大数 13 var data = [ 14{ 15 "name":"参考資料", 16 "updated":"", 17 "type":"folder", 18}, 19 20{ 21 "name":"2017_05_15.CrewA.pdf", 22 "updated":"", 23 "type":"file", 24}, 25 26{ 27 "name":"2017_05_15.CrewB.pdf", 28 "updated":"", 29 "type":"file", 30}, 31] 32 略 33 function Click_Sub(obj){ 34 if( ??????== ??????){ 35 return; 36 } 37 if(obj.style.backgroundColor=='red'){ 38 obj.style.backgroundColor=''; 39 count--; 40 }else{ 41 if(count==countmax){ 42 return; 43 } 44 obj.style.backgroundColor='red'; 45 count++; 46 } 47 } 48 49 function changeimg(){ 50 for(var j=0; j<datamax; j++){ 51 if(data[j + pagetop] == null){ 52 document.getElementById("gazo"+ j).style.visibility = "hidden"; 53 continue; 54 } 55 document.getElementById("gazo"+ j).style.visibility = "visible"; 56 if(data[j + pagetop].type=="folder"){ 57 document.getElementById("gazo"+ j).src=img[0].src; 58 }else{ 59 document.getElementById("gazo"+ j).src=img[1].src; 60 } 61 } 62 } 63 function getJson(){ 64 for(var i=0; i<datamax; i++){ 65 var elem = document.getElementById("dataname"+ i); 66 if(data[i + pagetop] == null){ 67 elem.innerText = null; 68 }else{ 69 elem.innerText = data[i + pagetop].name; 70 } 71 } 72 } 73 略 74</script>
###補足情報(言語/FW/ツール等のバージョンなど)
文章、ソースコードの修正点や改善点がありましたら
教えていただけると幸いです。
回答4件
あなたの回答
tips
プレビュー