1091 Stimmen

Abrufen der ID des Elements, das ein Ereignis ausgelöst hat

Gibt es eine Möglichkeit, die ID des Elements zu erhalten, das ein Ereignis auslöst?

Ich denke da an etwas wie:

$(document).ready(function() {
  $("a").click(function() {
    var test = caller.id;
    alert(test.val());
  });
});

<script type="text/javascript" src="starterkit/jquery.js"></script>

<form class="item" id="aaa">
  <input class="title"></input>
</form>
<form class="item" id="bbb">
  <input class="title"></input>
</form>

Es sei denn natürlich, dass die var test sollte die id enthalten "aaa" wenn das Ereignis vom ersten Formular ausgelöst wird, und "bbb" wenn das Ereignis vom zweiten Formular ausgelöst wird.

26 Stimmen

Ihr Beispiel ist ein wenig merkwürdig. Sie sind ein Klick-Ereignis zu 'a' anhängen, aber haben keine Anker. Ändern Sie es zu $('input.title').click(...) wäre ein wenig klarer für zukünftige Leser Ihrer Frage sein.

3 Stimmen

Sie können verwenden event.target.id im Event-Handler, um die ID des Elements zu erhalten, das ein Ereignis ausgelöst hat.

0 Stimmen

Sie können event als Argument in Ihrer Click-Callback-Funktion und verwenden Sie dann event.target.id

4voto

Error404 Punkte 721

Verwenden Sie einfach die this Referenz

$(this).attr("id")

ou

$(this).prop("id")

0 Stimmen

Das holt das Attribut id von dem Element, in dem click() zugewiesen worden ist. Wenn Sie weitere Daten auf diese Methode übertragen müssen, müssen Sie data-some-id="<?php $someId; ?>" und dann können Sie sie mit "$(this).data("some-id")" abrufen.

3voto

vml19 Punkte 3744

this.element.attr("id") funktioniert problemlos im IE8.

3voto

Kamil Kiełczewski Punkte 69048

Reines JS ist einfacher

aaa.onclick = handler;
bbb.onclick = handler;

function handler() { 
  var test = this.id; 
  console.log(test) 
}

aaa.onclick = handler;
bbb.onclick = handler;

function handler() { 
  var test = this.id; 
  console.log(test) 
}

<form class="item" id="aaa">
  <input class="title"/>
</form>
<form class="item" id="bbb">
  <input class="title"/>
</form>

2voto

Moji Punkte 5261

Beides funktioniert,

jQuery(this).attr("id");

y

alert(this.id);

1voto

xeon Punkte 795

Sie können die Funktion verwenden, um die ID und den Wert für das geänderte Element zu erhalten (in meinem Beispiel habe ich ein Select-Tag verwendet).

              $('select').change(
                   function() {
                        var val = this.value;
                        var id = jQuery(this).attr("id");
                        console.log("value changed" + String(val)+String(id));
                   }
               );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X