susi: welches element hat eine funktion aufgerufen?

hallo,

ich hab eine frage ...
gibt es eine mögichkeit herauszufinden welches object gerade eine function aufgerufen hat? oder muss ich jenes immer mit this als referenz der function übergeben?

bsp:
<input onclick="function(argument1)" ... />
wie weiss ich dass input ... diese funktion "function" aufgerufen hat?

oder muss ich es immer mit
<input onclick="function(argument1, this)" ... />
referenzieren um mit diesem node bzw. element manipulationen vor zu nehmen?

lg, susi

  1. Hallo,

    gibt es eine mögichkeit herauszufinden welches object gerade eine function aufgerufen hat? oder muss ich jenes immer mit this als referenz der function übergeben?

    Ja.

    Wenn du den click-Handler automatisch mit Javascript hinzufügst, dann hast kannst du auch direkt über »this« auf das geklickte Element zugreifen (naja, genauer gesagt auf das Element, dessen Handler ausgelöst wurde):

    <input id="input" ... />

    document.getElementById("input").onclick = argument1;

    function funktion () {
       alert(this);
    }

    Mathias

    1. Hallo molily.

      <input id="input" ... />

      document.getElementById("input").onclick = argument1;

      function funktion () {
         alert(this);
      }

        
      Meinst du nicht eher folgendes?  
        
      ~~~javascript
      function argument1() {  
        alert(this);  
      }
      

      Einen schönen Mittwoch noch.

      Gruß, Mathias

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hallo,

        <input id="input" ... />

        document.getElementById("input").onclick = argument1;

        function funktion () {
           alert(this);
        }

        
        >   
        > Meinst du nicht eher folgendes?  
        >   
        > ~~~javascript
        
        function argument1() {  
        
        >   alert(this);  
        > }
        
        

        Nee, ich meinte
        document.getElementById("input").onclick = funktion;
        ;)
        Mit »argument1« hatte sich der falsche Name in die Zwischenablage geschmuggelt.

        Mathias

        1. danke für die antworten!

          ich habe nicht gewusst dass this auch in der funktion verfügbar ist!
          danke schön!