Otto Wyss: Element adressieren in Javascript

Ich habe eine Tabelle mit einem Button im Footer

<tfoot>
    <tr>
      <td><input type="button" value="Do" onClick="doWork(this)"></td>
    </tr>
  </tfoot>

und mehreren Bodies in der Art wie

<tbody id="body1">
    <tr>
      <td><textarea id="text1" cols=40 rows=5">Element1</textarea></td>
    </tr>
  </tbody>

Wie kann ich jetzt herausfinden, wie ich das Element text1 im body1 in der Funktion doWork ansprechen kann?

function doWork (e) {
    alert (e...);
  }

Gibt es irgendwelche Hilfsmittel, die mich da unterstützen (Dom-Inspector, Firebug, etc)? Gibt es bessere, optimalere Wege ein Element in Javascript zu adressieren (z.B. absolute)?

  1. @@Otto Wyss:

    nuqneH

    Wie kann ich jetzt herausfinden, wie ich das Element text1 im body1 in der Funktion doWork ansprechen kann?

    document.[ref:self812;javascript/objekte/document.htm#get_element_by_id@title=getElementById]("text1") oder was genau willst du wissen?

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Ich kann nicht gewährleiten, dass die Bezeichnung "text1" über alle Bodies eindeutig ist, nur innerhalb eines. D.h. ich müsste sowieso innerhalb eines Bodies das Namen- statt das ID-Attribut verwenden. Das würde aber auch heissen, dass getElementByName auch nicht im ganzen Dokument geht.

      1. Ich kann nicht gewährleiten, dass die Bezeichnung "text1" über alle Bodies eindeutig ist, nur innerhalb eines. D.h. ich müsste sowieso innerhalb eines Bodies das Namen- statt das ID-Attribut verwenden. Das würde aber auch heissen, dass getElementByName auch nicht im ganzen Dokument geht.

        Die Funktion heißt getElementsByName, die auch jedes Element besitzt, d.h. du kannst auch schrieben: dieReferenzDesÜbergeordnetenElement.getElementsByName()

        Struppi.

        1. Die Funktion heißt getElementsByName, die auch jedes Element besitzt, d.h. du kannst auch schrieben: dieReferenzDesÜbergeordnetenElement.getElementsByName()

          Dann wäre ja nur noch "dieReferenzDesÜbergeordnetenElement" zu lösen. Wie würde die in meinem nach name= geänderten Beispiel heissen?

          <tfoot>
              <tr>
                <td><input type="button" value="Do" onClick="doWork(this)"></td>
              </tr>
            </tfoot>

          und mehreren Bodies in der Art wie

          <tbody name="body1">
              <tr>
                <td><textarea name="text1" cols=40 rows=5">Element1</textarea></td>
              </tr>
            </tbody>

          Wie kann ich jetzt herausfinden, wie ich das Element text1 im body1 in der Funktion doWork ansprechen kann?

          function doWork (e) {
              alert (e...);
            }

          1. Die Funktion heißt getElementsByName, die auch jedes Element besitzt, d.h. du kannst auch schrieben: dieReferenzDesÜbergeordnetenElement.getElementsByName()

            Dann wäre ja nur noch "dieReferenzDesÜbergeordnetenElement" zu lösen. Wie würde die in meinem nach name= geänderten Beispiel heissen?

            Wenn die Funktion wissen muss, auf Element die Funktion abarbeiten soll, dann musst du wohl diese Information an die Funktion als Parameter übergeben. Das geschieht beim Funktionsaufruf, den du bis jetzt verschwiegen hast.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Wenn die Funktion wissen muss, auf Element die Funktion abarbeiten soll, dann musst du wohl diese Information an die Funktion als Parameter übergeben. Das geschieht beim Funktionsaufruf, den du bis jetzt verschwiegen hast.

              Ahh ja? Was ist den mit onClick="doWork(this)"?

              1. Ahh ja? Was ist den mit onClick="doWork(this)"?

                this ist das input-Element, Von da ausgehend, musst du dir eine definierte Möglichkeit überlegen, wie du an das gewünscht Element kommst.

                Struppi.

          2. Die Funktion heißt getElementsByName, die auch jedes Element besitzt, d.h. du kannst auch schrieben: dieReferenzDesÜbergeordnetenElement.getElementsByName()

            Dann wäre ja nur noch "dieReferenzDesÜbergeordnetenElement" zu lösen. Wie würde die in meinem nach name= geänderten Beispiel heissen?

            Wissen wir nicht, das sind nur Fragemente. Du musst aber einen eindeutigen Punkt finden, wenn es den nicht gibt, dann geht das nicht.

            <tbody name="body1">

            Ein tbody Element hat keine Eigenschaft name

            Struppi.