Avatar billede kego Nybegynder
28. september 2001 - 10:27 Der er 13 kommentarer og
2 løsninger

Hvordan ændrer jeg ID i en <DIV>

Jeg har en <DIV id=\"on\">, hvor jeg via en funktion vil skifte id til id=\"off\" - men hvordan tilgår jeg <DIV> i funktionen ?
Avatar billede steen_e Nybegynder
28. september 2001 - 10:50 #1
Det gør du ikke - hvorfor i alverden vil du dog ændre en id? Når først html\'en er skrevet til filen, kan du ikke gå tilbage i den og ændre den.

Kan du ikke løse problemet med en funktion eller et klasseskift?
Avatar billede roenving Novice
28. september 2001 - 10:54 #2
Men det er da vel nærmere en class, du vil ændre??

Hvad skulle formålet med at ændre navn være?

Det er da meget enklere at angive en anden class for den:

i stylesheetet:

.on {
  visibility:visible
}

.off {
  visibility:hidden
}


og i div\'en:

<div id=\"minId\" class=\"on\">
<input type=button value=\"Gem mig\" onClick=\"document.all.minId.style.className=\'off\'\">

hth
jes
Avatar billede altinet Nybegynder
28. september 2001 - 10:56 #3
Selvfølgelig kan man ændre id (selvom jeg heller ikke forstår hvorfor)..

document.getElementById(\'on\').id=\'off\';

Måske var det en bedre ide at sætte en attribut på div\'en:

<DIV id=\"minDiv\" on=\"true\">

den kan du så ændre til \"false\"...

document.getElementById(\'minDiv\').on=\'false\';

:-) Lars
Avatar billede altinet Nybegynder
28. september 2001 - 10:59 #4
Det behøver ikke at have noget med en class at gøre. Det kunne jo være man havde en række \"felter\" som fik sat \"on\" når de f.eks. blev ændret, og at man så til sidst ønskede at hente værdien af alle felter med \"on\".

:-) Lars
Avatar billede kego Nybegynder
28. september 2001 - 11:06 #5
Tak for svarende :)
Min idé var netop at skifte class, men da jeg ikke havde regnet mig frem til style.className brugte jeg istedet #classnavn som gik på id\'et.

Men mit primære problem var, at jeg kunne ikke fange <DIV>\'en i min funktion ;)
Avatar billede roenving Novice
28. september 2001 - 11:09 #6
Så hører det også med at fortælle at document.all er IE4+
og document.getElemetById er IE5+ og NS6+
;·]
Avatar billede roenving Novice
28. september 2001 - 11:10 #7
Ups ...  getElementById
Avatar billede kego Nybegynder
28. september 2001 - 11:12 #8
Perfekt! - tak :)
Avatar billede olebole Juniormester
28. september 2001 - 12:10 #9
<ole>
Hvis man har rækker af <div>, som er \'døbt\' i rækkefølge, kan det være praktisk at kunne rename dem, hvis man dynamisk tilføjer flere <div>. Der er situationer, hvor man kan slanke sin kode betydeligt og holde den overskuelig, hvis man kan holde en rækkefølge i sine elementer. Her er det yderst praktisk at kunne omdøbe dem  :)
/mvh
</bole>
Avatar billede roenving Novice
28. september 2001 - 15:03 #10
>>ole

Ja, det kan vi sikkert sagtens konstruere et eksempel på, men da id\'en hed henholdsvis \'on\' og \'off\' fik jeg en kraftig mistanke !·]

PS. Takker for point ;~}
Avatar billede kego Nybegynder
28. september 2001 - 22:29 #11
Jeg har nu haft tid til at bruge jeres svar før nu, og devsærre har jeg nogle problemer med at få det til at virke:
Begge nedenstående har ingen effekt på lagets visibiltet:
1)
<div id=\"testdiv\" class=\"teston\">Test</div>
<a href=\"#\" onClick=\"document.all.testdiv.style.className=\'testoff\';\">skjul</a>

2)
<div id=\"testdiv\" class=\"teston\">Test</div>
<a href=\"#\" onClick=\"document.getElementById(\'testdiv\').style.className=\'testoff\';\">skjul</a>

styles på dem begge:
.teston {visibility:visible;}
.testoff {visibility:hidden;}

Et eller andet må jeg jo gøre forkert, men jeg kan ikke sgutte lure den :/

(har kun kunne teste i IE5)
Avatar billede olebole Juniormester
28. september 2001 - 23:44 #12
<a href=\"#\" onClick=\"document.all.testdiv.className=\'testoff\';\">skjul</a>

...that\'s all  =)
/mvh
Avatar billede kego Nybegynder
29. september 2001 - 01:32 #13
Ja, væk med style ;)

muchas gracias, olé
Avatar billede olebole Juniormester
29. september 2001 - 05:57 #14
...anytime  :)

<a href=\"#\" onClick=\"document.all.testdiv.className=\'testoff\';\">skjul</a>
...men:
<a href=\"#\" onClick=\"document.all.testdiv.style.visibility=\'hidden\';\">skjul</a>

...fordi \'class\' hører under div-objektet, mens \'visibility\' hører under style-objektet, der igen hører under div-objektet:
<div id=\"testdiv\" class=\"teston\" style=\"visibility:visible\">You see...?</div>

/mvh
Avatar billede kego Nybegynder
29. september 2001 - 13:26 #15
Ahh.. ja - det er jo ganske logisk. DOM here I come ;)
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