2017-09-15 1 views
4

コード内の特定の条件に基づいてボタン要素を表示または非表示にしようとしています。ボタンのデフォルトCSSをdisplay: noneで「隠す」ようにしてから、表示を変更するクラスをdisplay: blockに追加しました。Button要素のクラスを変更して表示/非表示にします

HTML:

<div> 
    <button id="show">SHOW</button> 
</div> 

CSS:

#show { 
    display: none; 
} 

#show .visible { 
    display: block; 
} 

JS:

var d = document.getElementById('show'); 
d.className += "visible"; 

私も試してみました:

var d = document.getElementById('show'); 
d.classList.add("visible"); 

と同様に:

documnet.getElementById('show').classList.add('visible'); 

問題は、私はクラスが適切に適用するために得ることができないということです、そしてクラスが更新されたとき、ボタンは表示されません。私は誰かが助けることができるなら、それが何であるか分からない、単純なものを見落としていると確信しています。

答えて

3

あなたは、ID "ショー" を持っている同じ要素に "目に見える" クラスを入れています。

あなたのCSSでは#showと.visibleの間にスペースを入れてはいけません。

HTML

<div> 
    <button id="show">SHOW</button> 
</div> 

CSS

#show { 
    display: none; 
} 

#show.visible { 
    display: block; 
} 

JS

var d = document.getElementById('show'); 
d.classList.add("visible"); 
+0

それはそれだった!!!!ありがとう、それは動作します:) – BaracudaBill

+0

あなたは大歓迎です! –

2

このメソッドを使用してください!

IDを変更する代わりに、ボタンが表示または非表示になるようにクラスhideを切り替えてください!

function myFunction() { 
 
    var element = document.getElementById("show"); 
 
    element.classList.toggle("hide"); 
 
}
.hide{ 
 
    display:none; 
 
} 
 

 
#show{ 
 
    display: block; 
 
}
<div> 
 
    <button id="show">SHOW</button> 
 
</div> 
 
<button onClick="myFunction()">Toggle</button>

+1

ではありません "ボタンを必要とするために実行中の特定のコード行に基づいています可視。 – BaracudaBill

+0

@BaracudaBillはい、デモンストレーションの目的でこれを行いました!しかし、要素を隠すためにクラス 'hide'を切り替えると、' element.classList.toggle( "hide");以外の任意のメソッドを使うことができます;これはクラスを切り替えるために使うことができます! –

+1

@NarenMuraliは右のthouthです。 'display:none'を持つ' .hidden'というCSSクラスを作成するだけです。そのクラスをhtmlに適用します。 'classList.toggle'を使ってそれを単にオン/オフするか、' classList.add/remove'を使うことができます。 –

0

document.getElementById('show').classList.add('visible');
#show { 
 
    /*display: none;*/ 
 
} 
 
.invisible{ 
 
    display: none; 
 
} 
 
.visible { 
 
    display: block; 
 
}
<div> 
 
    <button id="show" class="invisible">SHOW</button> 
 
</div>

2つのクラスを使用することをお勧めします。 .visible,.invisible

display:none.invisibleに設定する必要があります。ない#show

2

シンプルです。これを書く:代わりの

#show.visible { 
    display: block; 
} 

を:

#show .visible { 
    display: block; 
} 

(ジャストあなたは#showの間に置くスペースを削除 .visible)それは

関連する問題