alex: mehrere divs auf einer site haben probleme

Ich hoffe ihr versteht was mein problem ist: ich lese mehrere lange Texte aus einer datenbank aus. in dem fall ist dieser text zu lang und wird mit PHP gekürzt. wenn ich aber den unten angeführten code mehrere male auf einer site verwende, wird nur der erste code-block angesprochen: wenn ich auf more drücke entfaltet sich immer nur der oberste... warum? kann mir jemand helfen? und/oder ausbessern?

<div id="myIMG" style="display: block;"/>kurzer text</div>";
<div id="mytext" style="display: none;"/>langer text</div><a href="#" onclick="if(document.getElementById('myIMG').style.display=='block' && document.getElementById('mytext').style.display=='none')
     {
     document.getElementById('myIMG').style.display='none';
     document.getElementById('mytext').style.display='block';
     } else {
     document.getElementById('myIMG').style.display='block';
     document.getElementById('mytext').style.display='none';
}  " style="color: blue; text-decoration: underline; cursor: pointer;">More</a>

mein nächstes problem ist, das wenn ich auf den link draufgedrückt habe, soll statt more zb less stehn, wie geht das? help...

mfg alex

  1. Eine ID ist ein _eindeutiges_ Merkmal. Deshalb darf man eine ID auch nur einmal vergeben.

    Gib am besten jedem div eine andere ID, dann sollte es gehen.

    Den Wechsel zwischen more/less kannst du mit innerHTML erreichen. this.innerHTML = "more"; bzw "less"; sollte hier in den if bzw. else-Block geschrieben werden.

    PS:
    Lager den Javascript-Code doch in eine Funktion aus. Ist übersichtlicher, und du musst ihn nicht mehrfach schreiben.

    1. Hi Patrick,

      PS:
      Lager den Javascript-Code doch in eine Funktion aus. Ist übersichtlicher, und du musst ihn nicht mehrfach schreiben.

      Das ist doch mal ein Thema für mich.  ;-)
      Wie lagere ich den Javascript-Code aus? Ich hab vor noch wenigen Minuten die suche
      aufgegeben. Auf der Seite http://nimmet.de hab ich ein Code schnipsel gefunden,
      mit dem ich die background-color von Div klassen ändere,
      leider musste ich den Javascript direkt in den Div mit reinschreiben, da ich nichts gefunden hab, wo erklärt wird
      wie man es anständig einbindet und dann die Divs damit anspricht.

      Also nochmal kurz zusammengefasst, so sieht es zurzeit aus

      <div class="blog" onmouseover="this.style.backgroundColor='#fafafa'" onmouseout="this.style.backgroundColor='#fff'"></div>

      Und davon gibt es auf der seite 3st. untereinander.

      Wie könnte ich es Sauberer machen?

      Von Javascript habe ich übrigens kene Ahnung. Leider.

      Grüße,
      Engin
       GYRO

    2. Eine ID ist ein _eindeutiges_ Merkmal. Deshalb darf man eine ID auch nur einmal vergeben.

      Gib am besten jedem div eine andere ID, dann sollte es gehen.

      ja und wie mach ich das am besten, wenn ich aus einer db auslese?

      Den Wechsel zwischen more/less kannst du mit innerHTML erreichen. this.innerHTML = "more"; bzw "less"; sollte hier in den if bzw. else-Block geschrieben werden.

      ich hab leider wenig ahnung von javascriopt... wie ginge das mit innerHTML?

      lg alex