webForumDet fria alternativet

Hjälp konstruera "FOR" sats till detta!

JavaScriptur Javascript

5 svar · 283 visningar · startad av Alex34

Alex34Medlem sedan nov. 20047 inlägg
#1

Eftersom det handlar om 28 stycken sektioner (sec1, sec2 etc)
så blir det en väldig massa kod och jag undrar om det går tex
att göra typ så här:

function hideSec() {

for n=1 to 28 n++
{
if (ng5) document.getElementById('sec' + n).style.visibility = "hidden"
else if (ns4) document.["sec" +n].visibility = "hide"
else if (ie4) ["sec" +n].style.visibility ="hidden"
}

}

Ovan är inte korrekt kod, utan bara mina tankar och
jag undrar om nån av er kan det här, nedan finner
ni aktuell kod som jag alltså vill göra "for" sats till.

<script language="JavaScript">
//the next 3 lines are browser detection for user-agent DOMS
ns4 = (document.layers) ? true:false //required for Functions to work
ie4 = (document.all) ? true:false //required for Functions to work
ng5 = (document.getElementById) ? true:false //required for Functions to work

function hideSec() {

if (ng5) document.getElementById('sec1').style.visibility = "hidden"
else if (ns4) document.sec1.visibility = "hide"
else if (ie4) sec1.style.visibility ="hidden"

if (ng5) document.getElementById('sec2').style.visibility = "hidden"
else if (ns4) document.sec2.visibility = "hide"
else if (ie4) sec2.style.visibility ="hidden"

if (ng5) document.getElementById('sec3').style.visibility = "hidden"
else if (ns4) document.sec3.visibility = "hide"
else if (ie4) sec3.style.visibility ="hidden"

osv 28 gånger.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Eftersom numreringen börjar på 1 måste du ha i<(28+1) alltså 29.

for (i=1; i<(28+1); i++){
  if (ng5) document.getElementById("sec"+i).style.visibility = "hidden" 
  else if (ns4) document["sec"+i].visibility = "hide" 
  else if (ie4) document.all["sec"+i].style.visibility ="hidden"  
}

:)

Alex34Medlem sedan nov. 20047 inlägg
#3

Kanon!

tack för hjälpen, det fungerar!

i första if satsen skulle dock

vara två stycken '
och inte två "

så här:

if (ng5) document.getElementById('sec'+i)

men det såg jag själv.

tack!

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Det spelar faktiskt ingen roll i detta sammanhang!

Alex34Medlem sedan nov. 20047 inlägg
#5

Alldeles riktigt!

my mistake!

Funkar klockrent :)

Alex34Medlem sedan nov. 20047 inlägg
#6

Kan du förklara

Kan du förklara varför man inte behöver ha punkt
efter

getElementById

och

document

Infogas en punkt automatiskt när skriptet körs?

Och vad är syftet med

document.all

som du satte dit?

129 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)