Mehrere Bereiche mit gleicher Id verstecken

Marderpfote

Grünschnabel
Hallo!

ich habe eine riesen HTML Datei mit unmengen an Daten. Jetzt möchte ich nur bestimmte Datensätze aus dieser HTML Datei anzeigen lassen.

Beispiel:

Bereich 1 Id 5
Bereich 2 Id 6
Bereich 3 Id 5
Bereich 4 Id 6

So, wenn ich jetzt auf einen Link oder ähnliches klicke, möchte ich mir nur die Bereiche mit der Id 6 anzeigen lassen. Die Bereiche sollen nicht im gleichen <div> bereich liegen. Geht das per JavaScript? Hoffe ich hab mich einigermaßen kurz und verständlich ausgedrückt.
 
Ok, danke schon mal für die Hinweise.

Gibt es die Syntax?

HTML:
function display(mode,ele){
    if(mode=='s'){
      hideall();
      document.getElementsByName(ele).style.display='inline';
    }else{
      document.getElementsByName(ele).style.display='none';
    }
  }
 
Es muss document.getElementsByName(ele)[0].style.display heißen.

Den Syntax gibt's also nicht, weil es im Gegensatz zur Id, die einzigartig sein muss in HTML erlaubt ist mehreren Elementen den gleichen Namen zu geben. Das sagt auch schon das "s" in getElementsByName (es gibt mehrere) im Vergleich zu getElementById (es gibt nur eins).

getElementsByName ist also immer ein Array und daher musst du immer den Beziehner dazu schreiben, auch wenn das Array nur ein Element hat.

Ansonstenst, da ich deine Funktion hideall() nicht kenne kann ich sonst nichts sagen, aber sieht eigentlich ganz richtig aus.
 
Zuletzt bearbeitet:
Bliebe noch anzumerken, dass im Gegensatz zu id das name-Attribut kein Universal-Attribut ist, es ist also nicht in allen HTML-Elementen zulässig.

Solltest du versuchen, auf ein Element per getElementsByName() zuzugreifen, welches lt. HTML kein name-Attribut besitzt, wird es nicht gefunden werden.
 
HTML:
var subs=new Array('sub1','sub2','sub3','sub4','sub5');
    
  function hideall(){
    for(x=0; x<subs.length;x++){
      document.getElementsByName(subs)[x].style.display='none';
    }
  }

Hier nochmal die hideall().
 
HTML:
var subs=new Array('sub1','sub2','sub3','sub4','sub5');
     
   function hideall(){
     for(x=0; x<subs.length;x++){
       document.getElementsByName(subs[x])[0].style.display='none';
     }
 }
Vorausgesetzt es gibt immer nur ein Element mit Namen sub1 usw. ansonsten:
HTML:
var subs=new Array('sub1','sub2','sub3','sub4','sub5');
      
    function hideall(){
      for(x=0; x<subs.length;x++){
 obj =       document.getElementsByName(subs[x]);
 for (i=0; i<obj.length;i++)
 obj[i].style.display='none';
      }
    }
 

Neue Beiträge

Zurück