Получение идентификатора элемента, который вызвал событие - PullRequest
887 голосов
/ 07 сентября 2008

Есть ли способ получить идентификатор элемента, который инициирует событие?

Я думаю что-то вроде:

<html>
  <head>
    <script type="text/javascript" src="starterkit/jquery.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
        $("a").click(function () {
          var test = caller.id;
          alert(test.val());
        });
      });
    </script>
  </head>
  <body>
    <form class="item" id="aaa">
      <input class="title"></input>
    </form>
    <form class="item" id="bbb">
      <input class="title"></input>
    </form>
  </body>

</html>

За исключением, конечно, что переменная test должна содержать идентификатор "aaa", если событие вызывается из первой формы, и "bbb", если событие вызывается из второй формы.

Ответы [ 20 ]

5 голосов
/ 24 сентября 2016

Использовать можно Использовать .on событие

  $("table").on("tr", "click", function() {
                    var id=$(this).attr('id');
                    alert("ID:"+id);  
                });
4 голосов
/ 31 января 2015
var buttons = document.getElementsByTagName('button');
var buttonsLength = buttons.length;
for (var i = 0; i < buttonsLength; i++){
    buttons[i].addEventListener('click', clickResponse, false);
};
function clickResponse(){
    // do something based on button selection here...
    alert(this.id);
}

Рабочая JSFiddle здесь .

4 голосов
/ 09 ноября 2013

Это работает при более высоком z-index, чем параметр события, упомянутый в ответах выше:

$("#mydiv li").click(function(){

    ClickedElement = this.id;
    alert(ClickedElement);
});

Таким образом, вы всегда получите id элемента (в данном примере li). Также при нажатии на дочерний элемент родительского элемента.

3 голосов
/ 04 июня 2013

this.element.attr("id") отлично работает в IE8.

2 голосов
/ 04 августа 2016

Просто используйте this ссылку

$(this).attr("id")

или

$(this).prop("id")
2 голосов
/ 10 февраля 2014

Обе эти работы,

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

и

alert(this.id);
1 голос
/ 18 октября 2018

это работает с большинством типов элементов:

$('selector').on('click',function(e){
    log(event.currentTarget.id);
    });
1 голос
/ 05 февраля 2018

Вы можете использовать функцию, чтобы получить идентификатор и значение для измененного элемента (в моем примере я использовал тег Select.

              $('select').change(
                   function() {
                        var val = this.value;
                        var id = jQuery(this).attr("id");
                        console.log("value changed" + String(val)+String(id));
                   }
               );
0 голосов
/ 27 февраля 2019

В случае Angular 7.x вы можете получить нативный элемент и его идентификатор или свойства.

myClickHandler($event) {
    this.selectedElement = <Element>$event.target;
    console.log(this.selectedElement.id)
    this.selectedElement.classList.remove('some-class');
}

HTML:

<div class="list-item" (click)="myClickHandler($event)">...</div>
0 голосов
/ 11 ноября 2018

Я работаю с

jQuery Автозаполнение

Я пытался найти event, как описано выше, но когда функция запроса срабатывает, он кажется недоступным. Вместо этого я использовал this.element.attr("id"), чтобы получить идентификатор элемента, и, похоже, он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...