- 締切済み
javascriptで<table>背景色の取得
一度質問させていただいたのですが締め切ってしまったため再度質問させていただきます。 やりたいことはjavascript内でtableの背景色を取得することです。 PHPの処理でtableの背景色を変更しているのですが 変更した後にjavascriptで指定の色だった場合、処理をするといったことがしたいので 変更後のtableの背景色を取得したいのです。 かなり悩んでいて詰まっている状況です。 どのような解決策があるかご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ONEONE
- ベストアンサー率48% (279/575)
>カスタム背景を作成してそれを取得する感じですか。 カスタム背景というのはなにかわかりませんが、 背景色が取得できないなら、 クラス(class="#ff0000")や独自データ属性(data-bg="#ff0000")など出力されるようにして、これを取ればいいんではないでしょうか? ということです。
- Ogre7077
- ベストアンサー率65% (170/258)
<style type="text/css"> table { background-color: yellow; } </style> <table border id=target><tr><td>背景に<td>色が<td>ついた<td>表</table> <script> var table = document.getElementById('target'); // CSS の指定は読み取れない alert(table.style.backgroundColor); // '' // 要素に対する CSS の反映内容を計算する / IE9+ var cumpStyle = document.defaultView.getComputedStyle(table, null); alert(cumpStyle.backgroundColor); // 'rgb(255, 255, 0)' </script>
- ONEONE
- ベストアンサー率48% (279/575)
背景色にこだわらなくても、なにか取りやすいclassなどを背景色に合わせて生成するという方法もありますね。
補足
回答ありがとうございます。 カスタム背景を作成してそれを取得する感じですか。 少し調べてみます。
- fujillin
- ベストアンサー率61% (1594/2576)
調べればすぐにわかると思いますが、取得は簡単です。 element.style.backgroundColor で得られるはず。 返る値がいろいろなので、処理に少し工夫が必要になるでしょう。 http://d.hatena.ne.jp/yoppys/20080710/1215673179 http://d.hatena.ne.jp/unageanu/20090116/1232102860
補足
回答ありがとうございます。 そうですね、取得自体は簡単にできるんですが、 もともと設定していた色に対して PHPで変更して、そのあとJavascriptで色を取得できるかという感じなのですが、 初期設定色しか取得できない状況です。 見た目では色は変わっているのですが、なぜ取れないかわかりません。
補足
回答ありがとうございます。 処理で選択したCSSの色は取得できないけど 要素のスタイルの内容を計算する処理をして取得するということですね。