Det jeg ikke forstår er hvorfor det kun er getElementById, der vil virke...det andet burde vel også virke, men ikke desto mindre gør det det ikke...jeg havde håbet nogle måske kunne kaste lidt lys over den sag for mig?
roenving, hvorfor skal der et all på? Det står der da ikke noget om i min JavaScript bog, selvom den heller ikke beskæftiger sig med CSS...men det burde vel ikke have nogen betydning?
pelkjaer, jeg bruger altid NAME når jeg angiver et navn/id for et element...også selv til dem der ikke understøtter det *G* Så det startede jeg naturligvis med inden jeg stillede spørgsmålet ;)
-- at adressere elementer direkte (via id) er en ting, som M$ indførte med Internet Explorer 4, men principielt er det en adressering via document.all, som man dog kan tillade sig at underforstå, at udelade ...
-- at adressere fra document direkte til et id har jeg godt nok ikke set brugt nogensinde ...
og i princippet burde adresseringen vel også hedde:
document.all["AEFelt"].style.left="100px";
-- men da javascript (og vel også Jscript) internt oversætter til den anden formulering, kan vi vel også ...
-- og må jeg så gentage nikolaj:
Brug aldrig, aldrig, aldrig æøå i html- eller javascript identifiers !-)
Valide tegn i begge er a-z, A-Z, _ og tal, hvis de ikke står først !o]
roenving, så kig i bogen JavaScript For Dummies (MIN bibel *G*), der kan du finde masse af eksempler, vil jeg mene...eller også har jeg bare misforstået en del i bogen.
Men dvs.
document.all["AEFelt"].style.left="100px";
ville være den helt korrekte måde at skrive det på?
Ville W3's HTML debugger eller hvad pokker det nu er den hedder, så melde fejl ved
Nej, w3cs html-validator kigger ikke på javascript, så der vil du aldrig kunne få fejl ...
-- men brugere af andet end M$s produkter vil muligvis få fejl (og de fleste under alle omstændigheder !-), når man bruger document.all-konstruktionen ...
Muligvis vil brug af æøå kunne du på din egen maskine, og muligvis også på andre danske/europæiske brugeres, men du laver vel ikke en side, som kun skal ses af danskere med dansk som sprog på computeren ?-)
Selv vil jeg anbefale, at man bruger interCap-metoden til at lave identifiers, altså skriver, hvad variablen (identifieren) skal dække og så ændrer det til interCap: detteErEnInterCapVariabel, altså at mellemrum og bindestreger oversættes til et stort næste bogstav ...
-- så kan man udvide ved at sætte tal på, komplicerede variabler kan kobles sammen med underscore, som også kan bruges som start i helt specielle situationer, hvor man har brug for at understrege usædvanligheden !-)
if(document.getElementById){ document.getElementById('dinVariabel').et-eller-andet ... }else if(document.all){ document.all['dinVariabel'].et-eller-andet ... }else if(document.layers){ document.layers['dinVariabel'].et-eller-andet //men i NS4 er der ikke et style-objekt, ligesom f.eks. visibility svarer 'show' ... }
Og få noget der virker i de forskellige browsere - Dog differentieres der ikke her mellem hvilken browser af 5+ typen og det kan jo så give andre problemer.
Grunden til at jeg ville vende den var, at de fleste browsere idag ville svare positivt på getElementById, så de ville blive fanget før man spurgte mere end een gang !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.