JavaScriptでCSSのクラスに設定された値を書き換える方法はないでしょうか。

例えば、
p.class { color: blue; } を
p.class { color: red; } に変えたいのです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/26 16:27:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pacochi No.2

回答回数247ベストアンサー獲得回数113

ポイント60pt
var css_list = document.styleSheets;
if (css_list) for (var i = 0; i < css_list.length; i++) {

	var rule_list = (css_list[i].cssRules) ? css_list[i].cssRules : css_list[i].rules;

	for (var ii = 0; ii < rule_list.length; ii++)
	 if (rule_list[ii].selectorText.toLowerCase() == 'p.class')
	 with (rule_list[ii].style) {

		color = 'blue';
		border = '1px solid black';

	}

}

ざっと書くとこんな感じだったはずです。

スタイルを指定する部分は cssText でまとめ書きしても良いと思います。

id:malts

ありがとうございます。

役に立ちそうです。

2007/01/26 16:26:28

その他の回答1件)

id:kyosh No.1

回答回数143ベストアンサー獲得回数5

ポイント10pt

CSSを2ファイル用意して、切り替えるとか言うのはダメなんですよね?

■link要素でリンクしてる外部CSSを動的に切り替えるスクリプト

http://act.st/etc/css_s.htm

 

CSSファイルの中身じゃなくて、仮に変える方法であれば↓を参考して下さい。

http://east.portland.ne.jp/~sigekazu/css/javascript.htm

 

参考にならなかったらすみません。。。

id:malts

ありがとうございます。

2007/01/26 16:26:26
id:pacochi No.2

回答回数247ベストアンサー獲得回数113ここでベストアンサー

ポイント60pt
var css_list = document.styleSheets;
if (css_list) for (var i = 0; i < css_list.length; i++) {

	var rule_list = (css_list[i].cssRules) ? css_list[i].cssRules : css_list[i].rules;

	for (var ii = 0; ii < rule_list.length; ii++)
	 if (rule_list[ii].selectorText.toLowerCase() == 'p.class')
	 with (rule_list[ii].style) {

		color = 'blue';
		border = '1px solid black';

	}

}

ざっと書くとこんな感じだったはずです。

スタイルを指定する部分は cssText でまとめ書きしても良いと思います。

id:malts

ありがとうございます。

役に立ちそうです。

2007/01/26 16:26:28

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません