dポイントプレゼントキャンペーン実施中!

~~~HTML~~~
<div class="01-01">
123
</div>
<div class="02-01">
123
</div>
○○○○←ここにボタン

~~~CSS~~~
.01-01{
border:1px solid #298cef;
width: 950px;
height: 200px;
padding: 0px 0px 0px 0px;
}

.02-01{
border:1px solid #298cef;
width: 950px;
height: 200px;
padding: 0px 0px 0px 0px;
}



このようにしてスタイルシートでテーブルを作っているのですが、
ボタンを1回クリックすると、「01-01」と「02-01」のbordercolorを変更するようにしたいのですが、どうすればよいのでしょうか?
簡単にいうと、新Yahoo!Japanの色変えのように。

javascriptは全然わかりませんが、教えてくれませんか?

A 回答 (2件)

idと違ってclassは複数のオブジェクトを指定できる分ちょっと面倒。



その前に・・・
一応classは文字規制がないことになっていますが、
数字から始まるようなものは避けた方がよいです。
こんかいはとりあえず頭にcをつけときました。

やり方としては、クラスごとごっそり替えてしまうやり方と
クラスのスタイルのborder-colorをいじるやり方があるでしょう。
いかを参考にしてください。

//test.htm
<head>
<link rel="stylesheet" type="text/css" href="test.css">
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<div class="c01-01">
123
</div>
<div class="c02-01">
123
</div>
<input type="button" value="c01-01をc01-02に" onClick="changeClassName('c01-01','c01-02')">
<input type="button" value="c01-01の色を青に" onClick="changeBorderColor('c01-01','#0000ff')">
</body>

//test.css
.c01-01{
border:1px solid #298cef;
width: 950px;
height: 200px;
padding: 0px 0px 0px 0px;
}
.c01-02{
border:1px solid #ff0000;
width: 950px;
height: 200px;
padding: 0px 0px 0px 0px;
}
.c02-01{
border:1px solid #298cef;
width: 950px;
height: 200px;
padding: 0px 0px 0px 0px;
}

//test.js
function changeClassName(cn1,cn2){
var tags=document.getElementsByTagName('*');
for(var i=0;i<tags.length;i++){
if(tags[i].className==cn1) tags[i].className=cn2;
}
}
function changeBorderColor(cn,color){
var tags=document.getElementsByTagName('*');
for(var i=0;i<tags.length;i++){
if(tags[i].className==cn) tags[i].style.borderColor=color;
}
}
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!