- ベストアンサー
テーブル行にCSSを使用してJavaScriptを短くする方法
- JavaScriptを使用してテーブル行にクラスを追加するための効果的な方法を探しています。
- テーブル行のHTMLコードを短くするために、JavaScriptを使用してCSSクラスを追加する方法を教えてください。
- テーブル行のHTMLコードを簡潔にするために、JavaScriptを使用してクラスを追加する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どこかで見たような気がしたらphpMyAdminですね IE限定でしたら以下の感じでいけそうです。 (FFではphpMyAdmin自体は動くのですが、このソース は動かないですね・・・まぁもうちょい調べます) ちなみに、phpMyAdminは行ごとに色換えしている ので、一行おきにclass名をかえるか、分岐処理で 色がえした方がよいかもしれませんね <script language="JavaScript"> function onloadFunc(){ var allTags = document.getElementsByTagName('tr'); for (var i =0;i<allTags.length;i++){ if(allTags[i].className=="line_color"){ allTags[i].number =i; allTags[i].onmouseover =function(){setPointer(this, this.number,'over', '#DDDDDD','#CCFFCC','#FFCC99');}; allTags[i].onmouseout= function(){setPointer(this, this.number,'out', '#DDDDDD','#CCFFCC','#FFCC99');} allTags[i].onmousedown= function(){setPointer(this, this.number,'click','#DDDDDD','#CCFFCC','#FFCC99');} } } } </script> </head> <body onLoad="onloadFunc()"> <table> <tr class="line_color"><td>テスト</td></tr> <tr class="line_color"><td>テスト</td></tr> <tr class="line_color"><td>テスト</td></tr> </table> </body>
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
setPointer関数がどんなものかわからないのでなんとも いえませんが、以下のような様式でいかがでしょうか? <html> <head> <script language="javascript"> function onloadFunc(){ var allTags = document.getElementsByTagName('*'); for (var i =0;i<allTags.length;i++){ if(allTags[i].className=="line_color"){ allTags[i].onmouseover=function(){setPointer(this, 0, 'over', '#DDDDDD', '#CCFFCC', '#FFCC99');} allTags[i].onmouseout=function(){setPointer(this, 0, 'out', '#DDDDDD', '#CCFFCC', '#FFCC99');} allTags[i].onmousedown=function(){setPointer(this, 0, 'click', '#DDDDDD', '#CCFFCC', '#FFCC99');} } } } </script> </head> <body onLoad="onloadFunc()"> <table> <tr class="line_color"><td>テスト</td></tr> </table> </body> </html>
お礼
setPointer関数はphpMyAdminというフリーソフトにあるjavascriptの関数で長くて貼り付けられそうませんでした。行に色を塗ったり塗らなかったりします。 教えていたただいた方法で 1.getElementsByTagName('*')の*をtrに 2.this, 0,をthis, i, 3.下記のようにHTMLを3行に <tr class="line_color"><td>テスト</td></tr> <tr class="line_color"><td>テスト</td></tr> <tr class="line_color"><td>テスト</td></tr> してみましたのですが、 クリックした行がオレンジ色に変わるのですが、 最初にクリックした行しか色が変わりませんでした。惜しいです。 でも、こういう書き方があるんだというのことが わかっただけでも大変参考になりました。 ありがとうございます。