有什么方法可以获取触发事件的元素的ID ?

我在想:

$(document).ready(function() { $(“a”).click(function() { VaR 测试 = caller.id; alert(test.val()); }); }); <script type=“text/javascript” src=“starterkit/jquery.js”></script> <表单类=“项目” id=“aaa”> <输入类=“标题”></input> </form> <表单类=“项目” id=“bb”> <输入类=“标题”></input> </form>

当然,除了var测试应该包含id“aaa”(如果事件是从第一个表单触发)和“bbb”(如果事件是从第二个表单触发)。


当前回答

纯JS更简单

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

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

aaa.onclick = 处理程序; bbb.onclick = 处理程序; 函数处理程序() { VaR 测试 = this.id; 控制台.log(测试) } <表单类=“项目” id=“aaa”> <输入类=“标题”/> </form> <表单类=“项目” id=“bb”> <输入类=“标题”/> </form>

其他回答

虽然在其他文章中提到过,但我还是想说清楚:

美元(event.target)。Id未定义

美元(event.target)[0]。Id给出Id属性。

id也给出了id属性。

这一点。Id给出Id属性。

and

(美元)。Id未定义。

当然,区别在于jQuery对象和DOM对象之间。“id”是一个DOM属性,所以你必须在DOM元素对象上才能使用它。

(它绊倒了我,所以它可能绊倒了其他人)

作为jQuery对象的源元素应该通过

var $el = $(event.target);

这将为您提供单击的源,而不是分配了单击函数的元素。当单击事件在父对象上时是否有用 如。表行上的单击事件,您需要被单击的单元格

$("tr").click(function(event){
    var $td = $(event.target);
});

以Angular 7为例。你可以得到原生元素和它的id或属性。

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>

使用可以使用.on事件

  $("table").on("tr", "click", function() {
                    var id=$(this).attr('id');
                    alert("ID:"+id);  
                });

您可以使用该函数获取更改项的id和值(在我的示例中,我使用了Select标记)。

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