Thorsten: Elemente einer Seite zählen

Hallo Forum,

im Moment bin ich auf der Suche nach der Lösung für folgendes Problem:

Ein PHP-Script erzeugt eine Anzahl x von Zeilen. In jeder Spalte ist ein <span> folgendermaßen definiert: <span id="link[zeilennummer]"...>

Das Script listet mir die Zeilen also auf und zählt automatisch hoch

<tr><td><span id="link[1]">....</tr>
<tr><td><span id="link[2]">....</tr>
<tr><td><span id="link[3]">....</tr>
<tr><td><span id="link[4]">....</tr>

bis also

<tr><td><span id="link[x]">....</tr>

erreicht ist.

Jedes Span kann ich nun mit document.getElementById("link_xyz") ansprechen.

Allerdings wäre es nett, wenn mir JavaScript verraten würde, wieviele spans mit dem array-id "link" nun wirklich existieren.

Ich weiß, daß man Array-gleiche elementnamen an Formular-Elemente vergeben und diese dann wie ein Array behandeln kann...nur weiß ich leider nicht wie das bei den normalen html-Elementen geht.

Eine Lösung bzw. Link wäre toll

Grüße

Thorsten

P.S.:
Bitte keinen Realisierungsvorschlag in PHP ;)

  1. Hallo

    <tr><td><span id="link[1]">....</tr>

    diese id's sind ungültig.
    soll wohl eher so aussehen: <tr><td><span id="link_1">....</tr> ?

    damit das hier geht:

    Jedes Span kann ich nun mit document.getElementById("link_xyz")

    ansprechen.

    Die Nummer des letzten Array kannst du dann von PHP aus als JS-Variable speichern.

    Ich weiß, daß man Array-gleiche elementnamen an Formular-Elemente vergeben und diese dann wie ein Array behandeln kann...

    das verwechselst du wohl mit dem name-Attribut, oder?

    nur weiß ich leider nicht wie das bei den normalen html-Elementen geht.
    gar nicht.

    Gruss,
    Kube

    1. <tr><td><span id="link[1]">....</tr>
      diese id's sind ungültig.
      soll wohl eher so aussehen: <tr><td><span id="link_1">....</tr> ?

      damit das hier geht:

      Jedes Span kann ich nun mit document.getElementById("link_xyz")
      ansprechen.

      Na, also mit link[1] sollte es schon gemacht werden, hatte mich beim zweiten mal verschrieben, sorry.

      Die Nummer des letzten Array kannst du dann von PHP aus als JS-»»
      Variable speichern.

      Ich weiß ;) PHP-Lösung wäre ja easy, nur _muß_ das ganze mit JS realisiert werden.

      Ich hntier die ganze Zeit mit node rum. Das klappt ganz gut, zumal ich jetzt schon weiß wieviele <span> elemente die Seite hat. Nur leider nicht wieviele den namen "link" haben....

      Zu Hülfe!!!

  2. Hallo,

    Das Script listet mir die Zeilen also auf und zählt automatisch hoch

    <tr><td><span id="link[1]">....</tr>
    <tr><td><span id="link[2]">....</tr>
    <tr><td><span id="link[3]">....</tr>
    <tr><td><span id="link[4]">....</tr>

    Aendere die ungueltigen Identifier in link1 ... link4 oder link_1 ... link_4 und frage dann so ab:

    function Test()
    {
      var z=0;
      var sp=document.getElementsByTagName("span");
     for(var i=0;i<sp.length;i++)if(sp[i].id.indexOf("link")!=-1)z++;
     alert(z);
    }

    Beispielaufruf: <body onload="Test()">

    MfG, Thomas

    1. [tolles Workaround gesnippt]

      Danke, so leicht kanns manchmal gehen :)