Vraag & Antwoord

Webprogrammeren & scripting

[JavaScript] white space

3 antwoorden
  • Na een aantal lussen gaat het fout bij het volgende stukje script:[code:1:6799fd1e5f] h2[i].onclick = function(){ sib = this.nextSibling; if(sib.style.display == "block"){ sib.style.display = "none" } else{ sib.style.display = "block" } }[/code:1:6799fd1e5f]Als ik met alert(sib); probeer uit te vinden wat het volgende elememnt is krijg ik terug dat het text betreft. Dit zou daarentegen gewoon een ander element moeten zijn. In Internet Explorer werkt alles naar verwachten, maar Mozilla lijkt de tussenliggende whitespace niet te waarderen. Als ik het namelijk op een element uittest waar geen whitespace omheen zit (dus de siblings zitten tegen elkaar aan) werkt het prima. Is er een manier om van tevoren die whitespace weg te halen of is er misschien een parameter die ervoor zorgt dat de eventuele whitespace wordt genegeerd? Anne
  • Je zou aan de hand van de nodeType eigenschap kunnen kijken of de nextSibling een textnode (nodeType = 3) of een element (nodeType = 1)is. Als de nextSibling een textnode is, ga je gewoon door naar de nextSibling van die textnode. Zo zou het moeten werken: [code:1:7ef3886b2f] h2[i].onclick = function(){ var sib = this.nextSibling; while(sib.nodeType == 3){ sib = sib.nextSibling; } if(sib.style.display == "none"){ sib.style.display = "block" } else{ sib.style.display = "none" } } [/code:1:7ef3886b2f]
  • Dat werkt perfect. Nu heb ik helaas een ander probleempje dat waarschijnlijk wel op te lossen op een soort zelfde manier.[code:1:d3f552d17f] h2.item(0).nextSibling.style.display = "none"; // about h2.item(1).nextSibling.style.display = "none"; // calendar h2.item(2).nextSibling.style.display = "block"; // sections h2.item(3).nextSibling.style.display = "block"; // chapters h2.item(4).nextSibling.style.display = "none"; // search h2.item(5).nextSibling.style.display = "none"; // meta[/code:1:d3f552d17f]Hier wordt dus niet geloopt maar gewoon direct aangesproken. Hier gaat dus (nu) nog het een en ander de mist in. Misschien een soort functie maken voor het aanroepen van nextSibling? Anne

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.