Linuchs: TagName in ClassName

Hallo,

per Javascript markiere ich <li> Elemente, die einen gesuchten Text-Inhalt (wort) haben:

var li = document.getElementsByTagName( 'li' );
...
  for ( i=0; i<li.length; i++ )
  {
    document.getElementsByTagName( 'li' )[i].style.border = "none";
    if ( li[i].innerHTML.toLowerCase().indexOf( wort ) > (-1) )
    {
      document.getElementsByTagName( 'li' )[i].style.border = "1px solid #f00";
    }
  }

Das funktioniert prächtig. Allerdings auch dort im Dokument, wo ich es nicht möchte. Also habe ich um den gewünschten Bereich einen Zaun gezogen:

<div class=aussteller>
...
</div>

Eigentlich müsste ich die li's innerhalb des Zaunes doch erwischen mit

var lis = document.getElementsByClassName('aussteller')[0];
var li  = lis.getElementsByTagName( 'li' );

Doch dann kommt die Fehlermeldung bei der Opera "Uncaught exception: TypeError: Cannot convert 'lis' to object var li = lis.getElementsByTagName( 'li' );"

Wieso ist lis kein Objekt?

Linuchs

  1. Tach!

    Wieso ist lis kein Objekt?

    Moderne Browser haben Debugwerkzeuge an Bord. Breakpoint setzen und nachschauen ist die erste Maßnahme, um sich zu informieren, was wirklich ist. console.log(lis) zu verwenden wäre eine Alternative.

    dedlfix.

    1. Wieso ist lis kein Objekt?

      Moderne Browser haben Debugwerkzeuge an Bord. Breakpoint setzen und nachschauen ist die erste Maßnahme, um sich zu informieren, was wirklich ist. console.log(lis) zu verwenden wäre eine Alternative.

      Wenn javasript-Zeilen ausgeführt werden, müssen die Objekte vorher definiert sein. Ich hatte sie weiter unten eingerichtet.

      Linuchs