Ich verstehe dieses Verhalten nicht.JavaScript style.display funktioniert nur mit css inline
Wenn ich den Stil "display: none" inline funktioniert ordnungsgemäß, wenn ich auf ChangeDiv1-Schaltfläche klicke.
Wenn ich Style "display: none" im Header-Tag setze, wenn ich auf ChangeDiv2 Button document.getElementById ("conten2") klicken. Style.display ist leer.
Wenn ich nicht den Stil "display: none" setze, wenn ich auf ChangeDiv3 button document.getElementById ("conten3") klicke. Style.display ist leer.
Wie kann ich das lösen?
function cambiar1() {
var miElemento1 = document.getElementById("conten1").style.display;
if (miElemento1 == "block") document.getElementById("conten1").style.display = "none";
if (miElemento1 == "none") document.getElementById("conten1").style.display = "block";
document.getElementById('estadoconten1').innerHTML = 'State Div1:' + document.getElementById("conten1").style.display;
}
function cambiar2() {
var miElemento2 = document.getElementById("conten2").style.display;
if (miElemento2 == "block") document.getElementById("conten2").style.display = "none";
if (miElemento2 == "none") document.getElementById("conten2").style.display = "block";
document.getElementById('estadoconten2').innerHTML = 'State Div2:' + document.getElementById("conten2").style.display;
}
function cambiar3() {
var miElemento3 = document.getElementById("conten3").style.display;
if (miElemento3 == "block") document.getElementById("conten3").style.display = "none";
if (miElemento3 == "none") document.getElementById("conten3").style.display = "block";
document.getElementById('estadoconten3').innerHTML = 'State Div3:' + document.getElementById("conten3").style.display;
}
#estadoconten1 {border:solid 1px red}
#conten2 {display:none; border:solid 1px green}
#conten3 {border:solid 1px blue}
<h2>
MODIFY "LOAD TYPE" AT JAVASCRIPT MENU AND SET "IN HEAD" OPTION
</h2>
<button type="button" onclick="cambiar1()">ChangeDiv1</button>
<button type="button" onclick="cambiar2()">ChangeDiv2</button>
<button type="button" onclick="cambiar3()">ChangeDiv3</button>
<div id='estadoconten1'></div>
<div id='estadoconten2'></div>
<div id='estadoconten3'></div>
<br>
<div id='conten1' style='display:none'>
I am Div 1
</div>
<br>
<div id='conten2'>
I am Div 2
</div>
<br>
<div id='conten3'>
I am Div 3
</div>
Der Code zu Ihrer Frage muss in ** Ihre Frage **, nicht nur verbunden. Verwenden Sie Stack Snippets (die Schaltfläche '<>' in der Symbolleiste), um eine runnbare Demo wie jsFiddle ** vor Ort ** zu erstellen. –
Von [MDN HTMLElement.style] (https://developer.mozilla.org/docs/Web/API/HTMLElement/style) "Die HTMLElement.style-Eigenschaft gibt ein CSSStyleDeclaration-Objekt zurück, das nur das Inline-Stilattribut des Elements darstellt und alle Elemente ignoriert angewandte Stilregeln. " –