Avatar billede themepark Nybegynder
24. oktober 2003 - 17:26 Der er 19 kommentarer og
1 løsning

Problemer med getElementById

Jeg har følgende linje i mit dokument.
<INPUT TYPE="Checkbox" NAME="Gruppe1" VALUE="Alder" onClick="TjekVisibility('G1')">

Når jeg så klikker på checkboxen, får jeg at vide at "Et objekt var ventet" for den linje.

<DIV NAME="G1" STYLE="visibility: hidden">

Ovenstående linje er så det element, jeg vil have fat i.

Og jeg har så følgende funktion:

<SCRIPT LANGUAGE="JavaScript">
function TjekVisibility(GruppeNavn) {
    Gruppe=document.getElementById(GruppeNavn)
}
</SCRIPT>

Men hvor er det, at det går galt?
Avatar billede mm12010 Nybegynder
24. oktober 2003 - 17:29 #1
<DIV NAME="G1" id="G1" STYLE="visibility: hidden">
Avatar billede themepark Nybegynder
24. oktober 2003 - 17:34 #2
Det giver stadigvæk samme fejl, og mig bekendt burde det også kunne lade sig gøre blot med NAME. :(
Avatar billede mm12010 Nybegynder
24. oktober 2003 - 17:45 #3
function TjekVisibility(GruppeNavn){
    Gruppe=document.getElementById(GruppeNavn);
    alert(Gruppe+"\n"+Gruppe.style.visibility);
}
</SCRIPT>
</head>
<body>
<INPUT TYPE="Checkbox" NAME="Gruppe1" VALUE="Alder" onClick="TjekVisibility('G1')">
Når jeg så klikker på checkboxen, får jeg at vide at "Et objekt var ventet" for den linje.
<DIV NAME="G1" id="G1" STYLE="visibility: hidden">&nbsp;</div>
Avatar billede =maddog= Nybegynder
24. oktober 2003 - 17:49 #4
Så er det dig nu bekendt at name og id ikke er det samme. Ingen HTML standarder understøtter name i <div> og fra og med HTML4.01/Strict ingen name overhovedet nogen steder.
Og små <tagname>'s tak. Alt andet er bare for sjusket.
Avatar billede thesurfer Nybegynder
24. oktober 2003 - 17:49 #5
kan du ikke lige skrive hele formen, og hele scriptet..?
Avatar billede mm12010 Nybegynder
24. oktober 2003 - 17:51 #6
=maddog= >> lige mine ord :o)
Avatar billede =maddog= Nybegynder
24. oktober 2003 - 17:53 #7
jeg er på vej ud af døren, men overlader det gerne til mm12010's kompetente hænder.
Avatar billede themepark Nybegynder
24. oktober 2003 - 18:19 #8
LOL...jeg har lige fundet ud af hvad der var galt. Det havde intet med ovenstående linjer at gøre, men jeg har lige opdaget, at jeg et sted havde skrevet elseif i stedet for else if :)

Det der med name og id...fint nok, det kan vel være rigtigt nok, men det der med caps på tagnames er dog fuldstændigt ligegyldigt. Det er en smagssag om man vil have store eller små bogstaver, jeg foretrækker store bogstaver, og da begge dele kan bruges, bruger jeg store bogstaver...alt skal vel ikke til at være ligesom JavaScript?
Avatar billede myplacedk Nybegynder
24. oktober 2003 - 22:03 #9
"Det er en smagssag om man vil have store eller små bogstaver,"
I HTML 4, men i XHTML skal det være små. Du kan lige så godt vænne dig til at bruge små bogstaver nu, så bliver det lettere at skifte til XHTML. :)
Avatar billede roenving Novice
25. oktober 2003 - 02:11 #10
-- og må man lige gentage den gale hunds ord:

'Og små <tagname>'s tak. Alt andet er bare for sjusket.'

-- og som myplacedk skriver er det tåbeligt at anvende bagudvendte tænkemåder ...
Avatar billede =maddog= Nybegynder
25. oktober 2003 - 04:36 #11
HTML og JavaScript er forbavsende taknemmeligt når man starter på det, men det er bestemt ikke en undskyldning for konsekvent at levere dårlig kode. F.x bliver JavaScript hurtigt forbavsende komplekst hvis man ikke fra begyndelsen har tillagt sig gode vaner. I den forbindelse vil jeg (af venlighed - jeg prøver ikke på at være smart) indføre dig i to centrale begreber:
Semantik - En sætning kan forståes på én og kun én måde. Få sprog magter dette. Alle programmeringssprog skal kunne leve op til dette. Mange elementer i IE forsøger at "gætte" det samme som programmøren. Dette er forkert. Hvem ved hvem der gætter hvad. Betyder font-size:120% at teksten skal være 20% større end alt andet eller at teksten skal fylde 120% af skærmhøjden. Kun Bill Gates ved det.
Syntax - En (direkte) segment kode kan formuleres på én og kun én måde. Dette vil ikke blot give mere overskuelighed, mens også mindste parser, compiler og pre-compilers størrelse og give hurtigere visning. F.x kan IE anvende MSXML parseren til XHTML, og denne parser er faktisk forbavsende hurtig af et Microsoft produkt at være.
Jeg håber du forstår at dette er sagt i al venlighed. Jeg ønsker blot at du tænker lidt over hvordan din kode bliver effektiv - ikke blot hvordan du får noget frem i IE.
Avatar billede olebole Juniormester
25. oktober 2003 - 15:52 #12
<ole>

Som talt ud af mit blødende hjerte  ;o)
Det understreger også, at skal man skrive XHTML, bør man skrive strict ... ellers bliver fidusen blot til 'fisen, du'  :)

Jeg er som sagt helt enig med hunden - med én lille, omend vigtig undtagelse: name-attributten er ikke bare tilladt, men nødvendig på form-elementer.
/mvh
</bole>
Avatar billede themepark Nybegynder
26. oktober 2003 - 11:38 #13
maddog, det er hermed noteret, at du kun mener det i venlighed :) Der er bare temmelig mange herinde, der skal lege bedrevidende i hvert fald hvad jeg har oplevet og jeg hader den slags :(

Jeg kan fint være enig med at koden skal være effektiv, hvis jeg laver noget til internettet, men jeg laver også tit noget, der blot er til mig selv, og mange af mine spørgsmål herinde drejer sig om disse sider. Derfor hader jeg når folk skal prøve at forbedre på alt muligt, da de reelt set ikke kan vide, hvad jeg skal bruge tingene til.

Jeg må også indrømme, at jeg efter forrige indlæg opdagede, at man faktisk ikke kan bruge NAME sammen med DIV i den version (6.0) af IE, jeg bruger :(
Avatar billede olebole Juniormester
26. oktober 2003 - 16:22 #14
storbytossen >> De brugere af E, der har overblikket til at se noget skidt i en kode, offentliggjort på disse sider, har en forbandet pligt til at påpege det. Ellers vil den kunne danne 'skole' og andre læsere lærer noget forkert. Det ses dagligt på Eksperten - og det strider lodret mod meningen med sitet.

Kan man ikke tåle at få rettet sin dårlige kode, bør man måske overveje, om man offentliggør den på det forkerte sted  :)
/mvh
Avatar billede themepark Nybegynder
26. oktober 2003 - 16:35 #15
Ja og nej...som sagt kommer det bl.a. an på hvortil man designer sider. Men i de fleste tilfælde er det til internettet, jo :)

Og det har intet med at jeg ikke kan tåle at få rettet i min kode, jeg bryder mig blot ikke altid om måden, dette gøres på. Jeg synes tit, jeg oplever, at folk mere er ude på at blære sig med det, de kan, ved at forbedre ens kode, end rent faktisk at hjælpe.

I den slags tilfælde lyder det også tit som om ät folk KRÆVER at man "forbedrer" ens kode, og foreslåede forbedringer kan selvfølgelig være reelle forbedringer men lige så tit kan det være en smagssag, der afgør om det er en forbedring eller ej. Noget, en bruger synes er godt, er det ikke nødvendigvis for en anden.

Jeg ville da nok også foreslå rettelser i koder af og til, men det skader jo ikke lige at tilføje til sidst "men du bestemmer selvfølgelig selv, om du vil bruge det". Det andet er lidt for meget at trække ting henover hovedet på folk :(
Avatar billede olebole Juniormester
26. oktober 2003 - 16:48 #16
Jeg er fundamentalt uenig. Slamkode _er_ nu engang slamkode  :)
At du vil acceptere 'slamkode', skulle i så fald koste andre brugere muligheden for at lære den korrekte syntaks(?) Det er i direkte modstrid med E's formål - og det bliver over mit Eksperten-lig!

Du skal tænke på, at korrekt syntaks ikke er et personligt anliggende, men er fastlagt i internationale standarder - uagtet, at visse browserfabrikanter desværre undergraver disse.

At man så kan udnytte specielle features (i f.eks. IE), når man eksempelvis laver intranet og admin-applikationer, er en helt anden ting - men der plejer 'vi' også blot at påpege, der ikke er tale om kode, der er brugbar på WWW.
/mvh
Avatar billede themepark Nybegynder
26. oktober 2003 - 17:02 #17
Som sagt, forbedringer er ikke altid forbedringer herinde, jeg har tit oplevet at det lige så nemt kan dreje sig om personlig smag, desuden kan jeg f.eks. godt acceptere slamkode, som du kalder det, når det udelukkende er mig selv der kommer til at se en side. Og jeg har ikke sagt at der skulle være noget galt med at fortælle den korrekte syntaks, men der er mange, der skriver det som om de tænker "Kæft nogle idioter, der har programmeret det her lort". Det har jeg også selv oplevet. Og alle mulige andre KAN nu engang ikke vide, hvad der ligger bag af tanker og logik bag ens lort :)
Avatar billede olebole Juniormester
26. oktober 2003 - 17:50 #18
... og netop fordi, folk ikke har kinamands chance for at vide, hvorfor slam accepteres af spørgeren (det kan f.eks. også være af mangel på viden og overblik), er det vigtigt, det bliver påpeget, hvis der er tale om slam.

At man kan stille et spørgsmål og få det besvaret, er jo i virkeligheden kun en detalje ved E. Det måske aller vigtigste er den vidensbank, der herved bliver opbygget (for tiden over 300.000 besvarede spm). Derfor er det af største vigtighed, koden er korrekt, når en bruger om tre år søger og finder svar på sit spm ... forhåbentlig et korrekt svar  :)

... og så må den citron vel snart være presset  :D
/mvh
Avatar billede themepark Nybegynder
26. oktober 2003 - 17:53 #19
Jeg tror, citronen døde af indre kvæstelser for længe siden :p

Men du overser fuldstændig hvad jeg skriver. Du skriver, som om jeg har sagt, at jeg har noget imod at folk retter i ens kode, og det har jeg IKKE for 3. gang. Jeg har blot noget imod måden, det gøres på.
Avatar billede olebole Juniormester
26. oktober 2003 - 18:01 #20
Nej, jeg overser ikke, hvad du skriver ... tværtimod. Du leverer jo netop i (24/10-2003 18:19:08) et eksempel på, hvad du mener - og der er vi fundamentalt uenige. Hvad du efterfølgende har skrevet, synes blot at underbygge dette. Om så du mener noget andet, end det, du skriver, skal jeg ikke kunne udtale mig om  :)
EOD herfra  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester