Ian77: Blinktext

Hallo,

wie kann ich zum Beispiel dieses Script umbauen, dass alle Texteelmente mit der ID im Body blinken bzw. die Frabe wechseln...

Trägt man mehre ID´s ein, dann blickt immer nur der erste Text mit der ID...

<html>
<head>
<title>Blinkender Text nervt</title>
<script type="text/javascript">
<!--
function nerv_mich() {
  var obj = document.getElementById("blinker").style;
  if(obj.color == "red") {
    obj.color = "blue";
  }
  else {
    obj.color = "red";
  }
  window.setTimeout(nerv_mich, 500);
}
//-->
</script>
</head>
<body onload="nerv_mich()">
  <p>Dieser <span style="color:red" id="blinker">blinkt </span>Blinktext1 blinkt</p>
  <p>Dieser <span style="color:red" id="blinker">blinkt </span>Blinktext2 blinkt nicht</p>
</body>
</html>

Das ist bei allen zu findenden Scripten im Net...
Hat da mal jemand eine Lösung?

  1. id sollte ein Element eindeutig identifizieren, daher solltest du es nicht mehrfach verwenden. Du bekommst daher auch nur das erste zurückgeliefert.

    Daher heißt es ja auch getElementById und nicht getElement(s)ById

    Warum benutzt nicht class?

    1. Wie geht das mit class?
      Hast nicht ne schnelle Lösung?

      Stimmt, mit ID gehts nicht, da die immer eindeutig sein muss... Sorry

      1. Hi,

        Wie geht das mit class?
        Hast nicht ne schnelle Lösung?

        Stimmt, mit ID gehts nicht, da die immer eindeutig sein muss... Sorry

        Mit document.getElementsByTagName("span") kannst du auf alle Span-Elemente zugreifen.
        Dann kannst du diese in einer Schleife durchlaufen lassen und darin mit .className abfragen, ob das span-Element die gewuenschte Klasse hat.

        mfG,
        steckl

        1. In etwa so?

          <head>
          <script type="text/javascript">
          function blinker() {
          for(k=0; k<document.getElementsByTagName("span").length; k++) {
          if(document.getElementsByTagName("span")[k].style.visibility != "hidden") {
          if(document.getElementsByTagName("span")[k].className.substr(0, 5) == "blink")
          document.getElementsByTagName("span")[k].style.visibility = "hidden";
          } else {
          if(document.getElementsByTagName("span")[k].className.substr(0, 5) == "blink")
          document.getElementsByTagName("span")[k].style.visibility = "visible";
          }
          }
          var zeit = 750;
          window.setTimeout("blinker()", zeit);
          }
          </script>

          <style type="text/css">
          span.blink_farbe {
          color: #FF0000;
          }
          </style>
          </head>
          <body onLoad="blinker()">
          Hallo! <span class="blink_farbe">Dieser Text 1 blinkt!</span>
          Hallo! <span class="blink_farbe">Dieser Text 2 blinkt auch!</span>
          </body>

          hihihi

          1. oder so ?

            <html>
            <head>
            <script type="text/javascript">
            function blinker2(zeit) {
             var spans=document.getElementsByTagName("span");
             for(k=0; k<spans.length; k++) {
              with (spans[k]) {
               if (className.substr(0, 5) == "blink") {
                style.visibility= style.visibility == "hidden" ? "visible":"hidden";
                }
               }
              }
             window.setTimeout("blinker2("+zeit+")", zeit);
             }
            </script>

            <style type="text/css">
            span.blink_farbe {
            color: #FF0000;
            }
            </style>
            </head>

            <body onLoad="blinker2(500)">
            Hallo! <span class="blink_farbe">Dieser Text 1 blinkt!</span>
            Hallo! <span class="blink_farbe">Dieser Text 2 blinkt auch!</span>
            </body>
            </html>

  2. Hello out there!

    Trägt man mehre ID´s ein, dann blickt immer nur der erste Text mit der ID...

    Es kann nur einen geben.

    function nerv_mich()

    Die Benennung lässt erahnen, dass du weißt, was du da (an)tust?

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  3. hi,

    wie kann ich zum Beispiel dieses Script umbauen, dass alle Texteelmente mit der ID im Body blinken bzw. die Frabe wechseln...

    Klasse eines übergeordneten Elements ändern, und Nachfahrenselektor im CSS sinnvoll anwenden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }