我正在尝试使用div来切换点击时多个其他div的不透明度。 如果有人能指出我正确的方向,我会在这里出错,那将是伟大的:)
function toggle_opacity(className) {
var x = document.getElementsByClassName(className);
if(x.style.opacity == '0')
x.style.opacity = '1';
else
x.style.opacity = '0';
}
答案 0 :(得分:1)
getElementsByClassName
将返回一个数组,因此将代码包装在一个循环中:
function toggle_opacity(className) {
var x = document.getElementsByClassName(className);
for(i = 0; i < x.length; i++){
if(x[i].style.opacity == '0')
x[i].style.opacity = '1';
else
x[i].style.opacity = '0';
}
}
答案 1 :(得分:0)
Your JSFiddle有3个问题。
1)document.getElementsByClassName(className)
返回一个数组,因此您需要选择第一个元素:
var x = document.getElementsByClassName(className)[0];
2)您的if
需要检查不透明度是0
,而不是'0'
。
3)你的JS需要在<head>
,而不是onLoad
。
这是一个updated JSFiddle。
答案 2 :(得分:0)
答案 3 :(得分:0)
可能你想要这个 我完成了jquery
HTML -
<div id="div_1" class="ope">
</div>
<div id="div_2" class="ope">
</div>
<div id="div_3" class="ope">
</div>
的CSS ---
.ope{
width:200px;
height:100px;
background-color:pink;
margin-bottom:4px;
cursor:pointer;
}
的jquery -
$(document).ready(function(){
$(".ope").click(function(){
var thisdiv = $(this).attr('id');
//alert(thisdiv);
$(".ope").css('opacity','1');
$("#"+thisdiv).css('opacity','0.5');
})
})