keinnachweis: function show()

hi,

wir haben auf einer seite eine liste von dokumente in zeilen. und das wird langsam unübersichtlich. wir haben jetzt gruppen der dokumente in

<span id="name"></span>

eingeschlossen.

die auswahl erfolgt über eine liste:

<a href="#" onclick="on_menu_selected('all')"> name </a>

das script heißt:

<script language="JavaScript" type="text/JavaScript">
<!--
  function show(ele) {
      var srcElement = document.getElementById(ele);
      if(srcElement != null) {
  if(srcElement.style.display != "block") {
srcElement.style.display='block';
  }
  }
  }

function hide(ele) {
      var srcElement = document.getElementById(ele);
      if(srcElement != null) {
srcElement.style.display= 'none';
  }
  }

function on_menu_selected(name) {
  if(name == "all"){
show("name");
  }
  else{
hide("name");
  }
  }
//-->
 </script>

das funktioniert. nun wollen wir aber nicht gruppierte zeilen kennzeichnen, sonder wollen jedes beliegige zeile kennzeichnen.

wenn man aber mehrere zeilen, die nicht aufeinanderfolgen, mit <span id="name"> kennzeichnet, wird immer nur das erste aufgelistet.

gibt es da eine möglichkeit? über eine repeat-struktur?

für eine hilfe wäre ich sehr dankbar.

gruß micha

  1. wenn man aber mehrere zeilen, die nicht aufeinanderfolgen, mit <span id="name"> kennzeichnet, wird immer nur das erste aufgelistet.

    eine id ist - daher der Name - einmalig, also reicht es dem Browser, wenn er sie einmal gefunden hat

    Wenn mehrere Elemente gleiche Eigenschaften haben sollen, gibt es dafür class

    <span class="bla">mmm</span>

    Du kannst dann in aller Ruhe alle span durchgehen und schauen, ob sie dieser Klasse angehören:

    var allespan=document.getElementsByTagName("span");
    for (var s=0;s<allespan.length;s++) {
     if (allespan[s].className=="bla") mache irgendwas mit allespan[s]
    }

    1. vielen dank für die sachnelle reaktion: ich werde es so probieren. hier noch unsere seite mit der liste: http://www.keinnachweis.de

      1. hi,

        habe nun endlich das script zusammen gefrickelt. es funtioniert. bin für jeden verbesserungsvorschlag dankbar!

        function switchNotes(titel){
        hideAllNotes();
        showNotes(titel);
        }

        function hideAllNotes(){
        var allSpans = document.getElementsByTagName('span');
        for (var i = 0;i < allSpans.length; i++){
        var thisSpan = allSpans[i];
        thisSpan.style.display = 'none';
        }
        }

        function showAllNotes(){
        var allSpans = document.getElementsByTagName('span');
        for (var i = 0;i < allSpans.length; i++){
        var thisSpan = allSpans[i];
        thisSpan.style.display = 'block';
        }
        }

        function showNotes(titel) {
        var allSpans = document.getElementsByTagName('span');
        for (var i = 0;i < allSpans.length; i++){
        var thisSpan = allSpans[i];
        if (thisSpan.className && thisSpan.className == titel){
        thisSpan.style.display = 'block';
        }
        }
        }