Die id eines Elementes in eine Variable schreiben

  • Hallo Leute,

    ich möchte, dass beim Klicken auf ein Element, z.Bsp. auf einen Paragraphen, dessen "id" in eine Variable geschrieben wird.

    Ich habe folgendes versucht:


    <html>

    <p id="test1" onclick="schreibId()"> HierClicken</p>

    <p id="test2" onclick="schreibId()"> HierClicken</p>

    <script>

    function schreibId()

    {

    var x = document.getElementById(this).getAttribute("id");

    document.writeln(x);

    }

    </script>

    </html>


    Das klappt aber offensichtlich nicht, x sollte den Wert "test1" oder "test2" erhalten.

    Kann jemand helfen?


    Jürg

  • 1. "this" ist nicht verfügbar, bzw. es ist das window-Element, wenn Du den Eventlistener inline notierst. Du musst es als Parameter übergeben:

    Code
    1. onclick="schreibId(this);"

    2. Wenn Du es so machst, ist this bereits ein DOM-Element und Du brauchst es nicht mehr mit getElementById zu ermitteln.

    3. Verabschiede dich von document.write, es ist schwierig zu durchschauen. Definiere statt dessen eine Container und schreibe den Wert hinein.


    So funktioniert es:

    Code
    1. <p id="test1" onclick="schreibId(this)"> HierClicken</p>
    2. <p id="test2" onclick="schreibId(this)"> HierClicken</p>
    3. <p id="output"></p>
    4. <script>
    5. function schreibId(ele) {
    6. var x = ele.id;
    7. output.innerHTML = x;
    8. }
    9. </script>