Avatar billede stevenizzle Nybegynder
17. oktober 2005 - 22:27 Der er 11 kommentarer og
1 løsning

Ændre på ALLE bokse med det id

Hvis jeg bruger:

document.getElementById('minBoks').style.display = 'none';

Så retter den kun på 1.

Hvad nu hvis jeg har flere der skal ændres på? Hvordan gør jeg så?
Avatar billede mailand Nybegynder
17. oktober 2005 - 22:34 #1
et id er unikt - altså er der kun ét element, der kan have et givent id.

du skal hive dem på tagname getElementsByTagName("element")... og så evt. skille yderligere ud ved at tage en bestemt klasse...

men id kan kun bruges, når du vil hente ét element...

- Mailand
Avatar billede stevenizzle Nybegynder
17. oktober 2005 - 22:37 #2
Hvordan ændrer jeg så på boksene udfra class?
Avatar billede mailand Nybegynder
17. oktober 2005 - 22:43 #3
forudsat alle elementerne er af samme type - fx. <div>

aEl = document.getElementsByTagName("div");
for(var i = 0; i<aEl.length; i++){
    if(aEl[i].indexOf("classname") != -1){
        aEl[i].style.display = 'none';
    }
}

hvis de ikke er af samme type, kan du ændre til:
aEl = document.getElementsByTagName("*");


- Mailand
Avatar billede softspot Forsker
17. oktober 2005 - 22:43 #4
Du kan give dem den samme værdi i name-attributten, og så gennemløbe alle elementer med det name. Nogenlunde som mailand beskriver kan du fange alle elementer med det givne navn, du skal blot bruge

var minBoks = document.getElementsByName("minBoks");

og så en løkke som løber dem igennem:

for(var i = 0; i < minBoks.length; i++) {
  minBoks[i].style.display = 'none';
}
Avatar billede mailand Nybegynder
17. oktober 2005 - 22:44 #5
hov:
if(aEl[i].className.indexOf("classname") != -1){
Avatar billede olebole Juniormester
17. oktober 2005 - 22:47 #6
<ole>

softspot >> kun på de ganske få elementer, hvor name-attributten er valid  ;o)

/mvh
</bole>
Avatar billede softspot Forsker
17. oktober 2005 - 22:51 #7
Jeps! Det har jeg lige fundet ud af... såeh bare glem jeg var med i denne tråd!!! :D
Avatar billede stevenizzle Nybegynder
17. oktober 2005 - 23:14 #8
smid svar mailand
Avatar billede stevenizzle Nybegynder
17. oktober 2005 - 23:15 #9
er der forresten noget alá name, som er valid?

for class er ikke helt det optimale.
Avatar billede softspot Forsker
17. oktober 2005 - 23:26 #10
Du kan bare give dine elementer et lign id, f.eks. med et forløbende nummer...

<div id="minBoks1">...</div>
<div id="minBoks2">...</div>
<div id="minBoks3">...</div>
<div id="minBoks4">...</div>

og så gennemløbe dem som beskrevet ovenfor, blot ved at du checker på de første 7 tegn i id

e = document.getElementsByTagName("div");
for(var i = 0; i<e.length; i++){
    if(e[i].getAttribute("id").substr(0,7) == "minBoks"){
        e[i].style.display = 'none';
    }
}
Avatar billede olebole Juniormester
17. oktober 2005 - 23:39 #11
Hvorfor er class ikke optimalt? Du må gerne bruge flere classNames på samme element, hvorfor det netop er smart, at mailand skriver:
    if (aEl[i].className.indexOf("classname") != -1) {

- og ikke:
    if (aEl[i].className == "classname") {

Du kan f.eks. skrive:

<div class="minCssKlasse_A minJsKlasse_A">blabla</div>
<div class="minCssKlasse_B minJsKlasse_A">blabla</div>
<div class="minCssKlasse_A minJsKlasse_C">blabla</div>
<div class="minCssKlasse_A minCssKlasse_B minJsKlasse_A">blabla</div>
Avatar billede mailand Nybegynder
19. oktober 2005 - 00:54 #12
et svar :)
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