Avatar billede superraider Nybegynder
19. januar 2006 - 09:27 Der er 8 kommentarer og
1 løsning

fere div med samme id

target = document.getElementById('SNSCHIDDEN')
target.style.visibility = "visible";
target.style.position = "relative";

Hvis jeg har to div med samme id så tager den kun den første.

div id='SNSCHIDDEN' style="visibility=hidden">
div id='SNSCHIDDEN' style="visibility=hidden">

hvordan laver jeg så den tager og retter dem begge
Avatar billede softspot Forsker
19. januar 2006 - 10:17 #1
Du giver dem forskellige id'er. Det er ikke lovligt at benytte samme id 2 gange på samme side. Du kan f.eks. give dem fortløbende numre og så gennemløbe dem med en løkke:

for(var i=0; i < 1; i++) {
  obj = document.getElementById('SNSCHIDDEN' + i);
  if(obj) {
    obj.style.visibility = "visible";
    obj.style.position = "relative";
  }
}

Hvis jeg har to div med samme id så tager den kun den første.

<div id='SNSCHIDDEN0' style="visibility:hidden">
<div id='SNSCHIDDEN1' style="visibility:hidden">
Avatar billede superraider Nybegynder
19. januar 2006 - 10:26 #2
tja har brug for en mere dynamist løsning. antalleted af div kan variere
Avatar billede softspot Forsker
19. januar 2006 - 10:37 #3
Jamen, så må vi jo lave den mere dynamisk ;-)

var arrDiv = document.getElementsByTagName("div");
for(var i=0; i < arrDiv.length; i++) {
  if(arrDiv[i].id.indexOf('SNSCHIDDEN') != -1) {
    obj.style.visibility = "visible";
    obj.style.position = "relative";
  }
}

Denne løsning kræver blot at der ikke er andre div-elementer der indeholder SNSCHIDDEN i id'et. Alternativt kan du checke om id'et starter med den påg. tekst ved at ændre kriteriet for indexOf sammenligningen:

var arrDiv = document.getElementsByTagName("div");
for(var i=0; i < arrDiv.length; i++) {
  if(arrDiv[i].id.indexOf('SNSCHIDDEN') == 0) {
    obj.style.visibility = "visible";
    obj.style.position = "relative";
  }
}
Avatar billede superraider Nybegynder
19. januar 2006 - 10:56 #4
obj. ikke difineret
Avatar billede softspot Forsker
19. januar 2006 - 11:17 #5
Ja ok, en smutter:

var arrDiv = document.getElementsByTagName("div");
for(var i=0; i < arrDiv.length; i++) {
  if(arrDiv[i].id.indexOf('SNSCHIDDEN') != -1) {
    var obj = arrDiv[i];
    obj.style.visibility = "visible";
    obj.style.position = "relative";
  }
}
Avatar billede superraider Nybegynder
19. januar 2006 - 11:21 #6
smid bare et svar
Avatar billede softspot Forsker
19. januar 2006 - 11:25 #7
Kommer der :)
Avatar billede softspot Forsker
19. januar 2006 - 11:33 #8
Tak for point :)
Avatar billede roenving Novice
19. januar 2006 - 16:20 #9
-- og en smart måde at lave det på, er at benytte sig af class-propertyen, da den sandsynligvis også vil kunne bruges til at style elementerne:

div class='SNSCHIDDEN' style="visibility:hidden">
div class='SNSCHIDDEN' style="visibility:hidden">

var arrDiv = document.getElementsByTagName("div");
for(var i=0; i < arrDiv.length; i++) {
  if(arrDiv[i].className.match(/\bSNSCHIDDEN\b/)) {
    arrDiv[i].style.visibility = "visible";
    arrDiv[i].style.position = "relative";
  }
}
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