Kalle_B: Was ist 'this' ?

Hallöle,

was ist eigentlich 'this' als Parameter an eine Funktion?

Bei Klick auf dieses läuft die aufgerufene Funktion korrekt:

  
<td id="p101_table_7"><a href="#" class="sortheader" onclick="ts_resortTable(this, 7);return false;">Tel<span class="sortarrow">&nbsp;&nbsp;<img class="ic_kl" src="css/sort_none.gif" alt="↓"></span></a></td>  

aber bei Klick auf dieses gibt es in der Funktion einen Fehler:

  
<td id="p101_table_7"><a href="#" class="sortheader" onclick="ts_resortTable(document.getElementById('p101_table_7'), 7);return false;">Tel<span class="sortarrow">&nbsp;<img class="ic_kl" src="css/sort_none.gif" alt="↓"></span></a></td>  

und ich dachte, 'this' ist der Knoten, den man auch mit seiner id benennen könnte.

LG Kalle

  1. erst jetz fällt mir auf, dass 'this' sich auf <a> und nicht auf <td> bezieht.

    Das hätte mir vor einer Stunde auffallen sollen.

    Kalle

    1. Hi,

      erst jetz fällt mir auf, dass 'this' sich auf <a> und nicht auf <td> bezieht.

      ja. Für den Link gibt es übrigens keinen Grund, weil Du ja sehr offensichtlich nichts verlinken möchtest. Eliminiere das <a>-Element.

      Das hätte mir vor einer Stunde auffallen sollen.

      man Bäume | grep Wald

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. hallo

        ja. Für den Link gibt es übrigens keinen Grund, weil Du ja sehr offensichtlich nichts verlinken möchtest. Eliminiere das <a>-Element.

        es sei denn, die seite soll auch via tastatur navigierbar sein.

        gruß,

        pD

        1. Hi,

          ja. Für den Link gibt es übrigens keinen Grund, weil Du ja sehr offensichtlich nichts verlinken möchtest. Eliminiere das <a>-Element.
          es sei denn, die seite soll auch via tastatur navigierbar sein.

          dann sollte aber auch etwas verlinkt sein. Ent- oder weder.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    was ist eigentlich 'this' als Parameter an eine Funktion?

    http://de.selfhtml.org/javascript/sprache/objekte.htm#this

    Bei Klick auf dieses läuft die aufgerufene Funktion korrekt:

    <td id="p101_table_7"><a href="#" class="sortheader" onclick="ts_resortTable(this, 7);return false;">Tel<span class="sortarrow">&nbsp;&nbsp;<img class="ic_kl" src="css/sort_none.gif" alt="↓"></span></a></td>

      
    Hier wird die Referenz auf den Link, auf dem dieses onclick stattfindet, als Parameter uebergeben.  
    (Wenn die Funktion dann mit der Tabellenzelle was anstellen will(?), muss sie sich von dort erst mal "hochhangeln", ueber parentNode o.ae.)  
      
    
    > aber bei Klick auf dieses gibt es in der Funktion einen Fehler:  
    > ~~~javascript
      
    
    > <td id="p101_table_7"><a href="#" class="sortheader" onclick="ts_resortTable(document.getElementById('p101_table_7'), 7);return false;">Tel<span class="sortarrow">&nbsp;<img class="ic_kl" src="css/sort_none.gif" alt="↓"></span></a></td>  
    > 
    
    

    Jetzt wird Referenz auf die Tabellenzelle uebergeben.
    Versucht die Funktion damit das gleiche zu machen, wie zuvor mit dem Link, landet sie natuerlich u.U. ganz woanders im DOM-Baum.

    und ich dachte, 'this' ist der Knoten, den man auch mit seiner id benennen könnte.

    Was this referenziert, ist immer vom Kontext seiner Benutzung abhaengig.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“