Avatar billede hmm10 Nybegynder
14. juli 2005 - 12:06 Der er 18 kommentarer og
1 løsning

Flere id'er end en

Hej,

Jeg har en række <div>'er med samme id, som jeg via et javascript i <head> vil skjule via "display=none". MEN den tager kun den første div, så hvordan får jeg fat i alle og ikke kun den ene?

Jeg bruger:

document.getElementById(DontShow).style.display = "none";

Med Venlig Hilsen,
HHM10
Avatar billede grunken Nybegynder
14. juli 2005 - 13:12 #1
<script type="text/javascript">

skjul = function()
{
  divs = ["dontshow1","dontshow2"]

  for(a in divs)
  {
    document.getElementById(divs[a]).style.display = "none";
  }
}



</script>


<div id="dontshow1">uff</div>
<div id="dontshow2">uff</div>


<a href="#" onclick="skjul();return false">Skjul</a>
Avatar billede grunken Nybegynder
14. juli 2005 - 13:15 #2
Ups, glemte lige en kommentar!

Da en id er UNIK, kan du kun have et element med samme id!

Som i ovenstående ekesempel kan du eksempelvis mokke de diver med forskellig id i et array , og derefter skjule uf fra det :o)

Der er selvfølgelig flere muligheder, men dette var en af dem!
Avatar billede roenving Novice
14. juli 2005 - 14:41 #3
Det er simpelthen ugyldig html-kode, hvis man bruger det samme id mere end een gang ...

-- men som grunken nævner er der en hel stribe muligheder, i dit tilfælde kunne jeg tænke mig, at du kunne benytte dig af at give alle elementerne samme klasse, og så genkende dem på den !-)
Avatar billede busschou Praktikant
14. juli 2005 - 15:30 #4
Eller du kunne benytte dig af name attributen som tillader flere ens navne og hvor du kan hente dem alle med getElementsByName
--
elms = document.getElementsByName('DontShow');
for (i=0;i<elms.length;i++){
  elms[i].style.display = 'none';
}
Avatar billede roenving Novice
14. juli 2005 - 15:33 #5
-- har du overblik over hvor getElementsByName virker ?-)
Avatar billede busschou Praktikant
14. juli 2005 - 15:34 #6
hvor?... tja lige her ;o)
Avatar billede busschou Praktikant
14. juli 2005 - 15:36 #7
har en ide om at du vil ud i en crossbrowser debat eller noget
Men mig bekendt er getElementsByName ikke deprecated endnu da ?
Avatar billede roenving Novice
14. juli 2005 - 15:38 #8
-- deprecated bliver den jo med sikkerhed, men den var ikke en del af nogle browsere for 4 år siden, så jeg aner ikke hvor den virker henne !-)
Avatar billede busschou Praktikant
14. juli 2005 - 15:43 #9
så kan man jo prøve sig frem, det er jo i forvejen umuligt at skrive kode som virker i _samtlige_ browsere.
Man kan vel enten vælge at skrive til dem man lige synes man har behov for
Eller også kan man skrive efter w3c´s standarder, hvor bla getElementsByName er defineret mig bekendt
Så kan man også opgive helt da mig bekendt bla Microsoft med IE er med til at beslutte og vedtage standarderne hos w3c, selvom de så ikke selv gider supporte deres egne besluttede standarder
hmm er det det man kalder anarki ?
Avatar billede olebole Juniormester
14. juli 2005 - 15:51 #10
<ole>

Man kan godt bruge getElementsByName, men så løber man ind i problematikken omkring name-attributtens validitet. Name-attributten er jo kun tilladt på ganske få elementer, så deeeeeeeet .......  :)

/mvh
</bole>
Avatar billede olebole Juniormester
14. juli 2005 - 15:53 #11
- og name-attributtens anvendelse indsnævres yderligere i XHTML2.0, hvor vi kommer til at overgå til XForms. Hvis den da ikke helt bortfalder i denne standard ... det har jeg ikke checket  :)
Avatar billede busschou Praktikant
14. juli 2005 - 15:56 #12
ok bider i det sure æble og siger, ja klart at den jo kun virker på elementer hvor man kan sætte et name.. sorry ;o)
---
Men at man allerede nu skal tage højde for elementer som ikke virker om "guderne må vide hvor mange år når nye standarder tages i brug" ja så er jeg sku stået af!

Standarder bliver hele tiden lavet om
Hvis der er længe nok i mellem behøves man ikke tage højde for det vupti her og nu
Hvis der er kort nok imellem så kan man ikke tage højde for andet

Derfor er min holdning at lave det så det virker nu og her.
Men det er så bare min mening
Avatar billede hmm10 Nybegynder
15. juli 2005 - 17:27 #13
Sikke en debat - dem kan man ikke få nok af :)

Jeg prøver at finde på noget andet ;) Lukker sopørgsmålet.. nogle der vil have points inden jeg lukker?
Avatar billede busschou Praktikant
15. juli 2005 - 17:28 #14
ik mig :o)
Avatar billede olebole Juniormester
15. juli 2005 - 17:55 #15
Jeg skal heller ikke have noget her  :)

busschou >> Den næste overgang bliver efter al sandsynlighed ganske voldsom, så det er såmænd en rigtig god idé at begynde at øve sig. I forvejen vil den medføre et overordentligt stort koderproletariat af folk, der ikke længere vil kunne kode til WWW.
Næste gang, vi skifter, kommer standarden til at hedde XHTML2.0 - og det varer nok ikke meget mere end et år eller i værste fald to. Når den er en realitet, kan du ikke lave én eneste lillebitte fejl, uden browseren vælter og nægter at vise siden - og browserne vil meget hurtigt ikke være i stand til at læse HTML.

Hvis jeg var dig, ville jeg ikke stå af - men stå på, inden jeg bliver smidt af  ;o)
Avatar billede busschou Praktikant
15. juli 2005 - 18:02 #16
olebole >> er den nye IE7 som kommer med på noderne der?.. eller skal man så vente på IE8 som måske er ligeså lang tid undervejs som nummer 7? .. for så er det at virker nytteløst lige her og nu i min verden :o)
Avatar billede busschou Praktikant
15. juli 2005 - 18:05 #17
og desuden så vil browserne vel forhåbentlig være bagud kompatible? For ellers går hele nettet da ned i en periode
Avatar billede olebole Juniormester
15. juli 2005 - 18:42 #18
Den væsentligste årsag til, IE7 har været så længe undevejs, er, at det er så pokkers besværligt at skrive og videreudvikle en browser, der i dén grad tørrer op efter ukyndige kodere. IE7 bliver uden tvivl væsentligt bedre end IE - og garanteret langt mere striks.
Da XHTML2.0 endnu ikke er gældende standard, vil IE7 ikke være XHTML2.0 compliant. Om du skal vente til 7.1 eller 8.0, er ikke til at sige - ligesom vi jo ikke aner, hvorlang tid der går mellem kommende upgrades/versioner.

Skal der overhovedet være mening med 'de nye' standarder, kan browserne ikke gøres bagudkompatible for HTML. Det betyder helt sikkert en vanskelig overgangsperiode med både gamle og nye browsere i spil - men den bliver forhåbentlig kort.
Guleroden er en myriade af nye muligheder - og det alt for længe ventede fravær af skodkode  :)

Der vil sikkert også eksistere et HTML subnet i lang tid, men der, hvor det kommer til at sne, hedder standarden ikke HTML ... og det er svært at se, hvem der skulle gide at udvikle nye HTML-browsere  :)
Avatar billede hmm10 Nybegynder
20. juli 2005 - 00:40 #19
lukker
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