Avatar billede visuel Nybegynder
13. september 2005 - 12:55 Der er 21 kommentarer

document.getElementById(id).style.display fejler

Hvilken display-element tilføjer denne kode?

document.getElementById(id).style.display = '';

Den fejler når den ser ud som ovenstående, men hvis jeg skriver

...display = 'none'; fejler den ikke...

Fejlen er Object required

:)
Avatar billede roenving Novice
13. september 2005 - 12:57 #1
.display = 'block';//eller inline, list-item osv. ...
Avatar billede roenving Novice
13. september 2005 - 12:58 #2
-- hvor forekommer fejlen ?-)

-- browser, element-type osv., gerne et link !-)
Avatar billede olebole Juniormester
13. september 2005 - 13:04 #3
<ole>

Det lyder somom, du forsøger at adressere elementet, inden det er tegnet i browseren. Du bør tidligts kalde på dokumentets onload-event  :)

/mvh
</bole>
Avatar billede olebole Juniormester
13. september 2005 - 13:05 #4
- og så tror jeg ikke rigtig på, at display = 'none' gør nogen forskel. Ikke hvis du prøver at kalde fra samme sted - og på samme tidspunkt  ;o)
Avatar billede visuel Nybegynder
13. september 2005 - 13:07 #5
function showMenu(id){
  for(var n=0; n<document.gerElementsByName('menu').length; i++){
    document.getElementsByName('menu')[i].style.display = 'none';
  }
  document.getElementsById('id')[i].style.display = '';    //<-- her det sker
}

Desværre heller ingen links denne gang :( beklager - Håber I kan hjælpe alligevel
Avatar billede roenving Novice
13. september 2005 - 13:10 #6
Det er dine gnyffer omkring id, der genererer fejlen, for det er jo i forvejen en tekststreng ...

-- altså du skal skrive præcis det, du startede med at skrive, og ikke det, du har kopieret ind nu !-)

-- iøvrigt sætter jeg altid selv display-typen, altså som jeg skrev i min første kommentar !o]
Avatar billede visuel Nybegynder
13. september 2005 - 13:20 #7
hov.. Doh.. der er ingen '' omkring id  i sidste linie. Besværligt når man bruger flere computere.. :) så det virker altså stadig ikke...

Når man ikke skriver noget, hvad vælger den så som standard? (er noget kode jeg har fundet og er ikke vildt stærk i javaScript)
Avatar billede roenving Novice
13. september 2005 - 13:24 #8
Standard-display for elementet skulle være det rigtige ...
Avatar billede olebole Juniormester
13. september 2005 - 13:24 #9
Hvis du sætter en property på elementets style-objekt med den tomme streng som værdi, vil enten elementets medfødte defaultværdi blive gældende - eller en evt. værdi sat via stylesheet
Avatar billede visuel Nybegynder
13. september 2005 - 13:41 #10
hmm.. underligt den fejler når strengen er tom, men ikke når jeg skirver none
Avatar billede olebole Juniormester
13. september 2005 - 18:45 #11
Ja, det er vel ikke så underligt, at noget går galt ... nu jeg ser nærmere efter  :)

document.getElementsById('id')[i].style.display = '';    //<-- her det sker

- skal være:

document.getElementsById(id).style.display = '';    //<-- her det sker

... og så lige for en sikkerheds skyld: Du har vel forhåbentlig ikke flere elementer med samme ID? Det er nemlig en _absolut_ nono!  :)
Avatar billede olebole Juniormester
13. september 2005 - 18:47 #12
Et name skal ikke nødvendigvis være unikt i dokumentet - men det er helt nødvendigt med en id. Du kan sammenligne det med dit navn og personnummer  ;o)
Avatar billede roenving Novice
13. september 2005 - 18:48 #13
-- og s'et havde du ikke fået fjernet:

document.getElementById(id).style.display = '';    //<-- her det sker
Avatar billede olebole Juniormester
13. september 2005 - 19:56 #14
damned ... selvfølgelig! Det overså jeg totalt ... tak, Jes ... mit tredie øje  ;D
Avatar billede roenving Novice
13. september 2005 - 20:03 #15
-- tjah, sådan går det, når man ikke aktiverer begge hjerne celler *lol*
Avatar billede olebole Juniormester
13. september 2005 - 20:11 #16
- fanden tage mit lamme øjenbryn!  *ROTFL*
Avatar billede visuel Nybegynder
13. september 2005 - 23:22 #17
Mange tak for hjælpen, men det var slet ikke det der var galt - eller jo det ville også ha' været galt, men alle de fejl i har fundet er fejl der er opstået da jeg har genskrevet koden (sad med to computere) - aldrig mere om jeg gør det.. Copy/paste er nok mere sikkert for korrekt svar ;)

Ved ikke rigtigt hvad fejlen er, men hvis jeg udkommenterer    document.getElementsByName('menu')[i].style.display = 'none';
så virker det. Er det fordi der ikke er nogle elementer med name=menu?



ps.nu vi er i gang med at finde fejl kan jeg da selv oplyse at ...gerElementsByName('menu')...
Avatar billede roenving Novice
13. september 2005 - 23:30 #18
-- men dine menu-elementer er vel ikke af den type, som har navne ?-)

-- for det er stort set forbeholdt form-elementer (input, button osv. !-)
Avatar billede visuel Nybegynder
14. september 2005 - 11:11 #19
men hov... Hvis nu

document.getElementById(id)[i].style.display = '';

sætter til default-style... Er der  så overhovedet nogen grund til at bruge den i dette script?
Avatar billede roenving Novice
14. september 2005 - 13:26 #20
Ja, for de andre skjules jo !-)

-- og så har du stadig [i] i overskud ...
Avatar billede olebole Juniormester
14. september 2005 - 13:59 #21
Kan du ikke godt vise os resten af koden? Det er ved at udvikle sig til en ret kedelig quiz, hvor man har de mest skrækindjagende forestillinger om, hvordan resten af koden ser ud. Det er ikke til at finde ud af, om du bruger name- eller id-attributter på elementerne - og om de er unikke eller ej.
Skal vi komme videre, må du vise koden omkring de elementer, du forsøger at kalde  :)
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