0

クリックすると、他の複数の 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';
}
4

4 に答える 4

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';
    }
}
于 2013-09-26T06:25:53.243 に答える
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');

    })
})
于 2013-09-26T06:34:56.203 に答える
0

変更でフィドルを更新しました:

要件に合わせて関数を変更しました。

e1[0].style.opacity = '1';
e1[1].style.opacity = '0';

この 2 行を追加しました。

于 2013-09-26T06:30:21.730 に答える
0

JSFiddleには 3 つの問題があります。

1)document.getElementsByClassName(className)は配列を返すため、最初の要素を選択する必要があります。

var x = document.getElementsByClassName(className)[0];

2)if不透明度が0であるかどうかを確認する必要があり'0'ます。

3) JS は<head>ではなくにある必要がありonLoadます。

これは更新された JSFiddleです。

于 2013-09-26T06:28:42.690 に答える