• 締切済み

javascriptで<table>背景色の取得

一度質問させていただいたのですが締め切ってしまったため再度質問させていただきます。 やりたいことはjavascript内でtableの背景色を取得することです。 PHPの処理でtableの背景色を変更しているのですが 変更した後にjavascriptで指定の色だった場合、処理をするといったことがしたいので 変更後のtableの背景色を取得したいのです。 かなり悩んでいて詰まっている状況です。 どのような解決策があるかご教授お願いします。

みんなの回答

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.4

>カスタム背景を作成してそれを取得する感じですか。 カスタム背景というのはなにかわかりませんが、 背景色が取得できないなら、 クラス(class="#ff0000")や独自データ属性(data-bg="#ff0000")など出力されるようにして、これを取ればいいんではないでしょうか? ということです。

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

<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>

k-karasu
質問者

補足

回答ありがとうございます。 処理で選択したCSSの色は取得できないけど 要素のスタイルの内容を計算する処理をして取得するということですね。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

背景色にこだわらなくても、なにか取りやすいclassなどを背景色に合わせて生成するという方法もありますね。

k-karasu
質問者

補足

回答ありがとうございます。 カスタム背景を作成してそれを取得する感じですか。 少し調べてみます。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

調べればすぐにわかると思いますが、取得は簡単です。  element.style.backgroundColor で得られるはず。 返る値がいろいろなので、処理に少し工夫が必要になるでしょう。  http://d.hatena.ne.jp/yoppys/20080710/1215673179  http://d.hatena.ne.jp/unageanu/20090116/1232102860

k-karasu
質問者

補足

回答ありがとうございます。 そうですね、取得自体は簡単にできるんですが、 もともと設定していた色に対して PHPで変更して、そのあとJavascriptで色を取得できるかという感じなのですが、 初期設定色しか取得できない状況です。 見た目では色は変わっているのですが、なぜ取れないかわかりません。

関連するQ&A