2016-04-10 15 views
0

Ich möchte den div-Inhalt ausblenden, während das Kontrollkästchen deaktiviert ist.kann das Kontrollkästchen nicht deaktivieren (Inhalt ausblenden, während das Kontrollkästchen deaktiviert ist)

document.getElementById("checkFocus").onchange = function() { 

var one = document.getElementById("focus"); 
    if (document.getElementById("checkFocus").checked === true) { 
     one.style.display = "block"; 
    } 
    else one.style.display = "none"; 
} 

Und es funktioniert: Here's my code

Ich habe fast die gleiche Funktion für die div mit id "Fokus" (großer grauer Rahmen) gemacht! So

, ich verstehe nicht, warum die nächste Funktion überhaupt nicht funktioniert:

document.getElementById("checkMass").onchange = function() { 

var elem = document.querySelector("PeriodicTable") 
var mass = elem.querySelectorAll("div.element > div.mass"); 
    if (document.getElementById("checkMass").checked === true) { 
     mass.style.display = "block"; 
    } 
    else mass.style.display = "none"; 
} 

Was mache ich falsch?

Antwort

2

elem.querySelectorAll("div.element > div.mass"); gibt kein einzelnes Element zurück, es gibt eine Auflistung aller Übereinstimmungen zurück.

Das heißt nicht mass.style.display auf einem Array tun, nur auf einem einzigen Element, so dass Sie

if (document.getElementById("checkMass").checked === true) { 
    for (var i = 0; i < mass.length; i++) { 
     mass[i].style.display = "block"; 
    } 
else { 
    for (var i = 0; i < mass.length; i++) { 
     mass[i].style.display = "none"; 
    } 
} 

stattdessen tun müssen.

+0

Guter Punkt, Trog er verwechselt werden könnte durch 'querySelector ("PeriodicTable")' vs 'querySelector ("# PeriodicTable")' – Akxe

+0

Sie braucht unsere beiden Antworten für sie Arbeit (ich denke): p – PinkTurtle

+0

Ja, er tut: D – Akxe

Verwandte Themen