有什么方法可以获取触发事件的元素的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”(如果事件是从第二个表单触发)。


当前回答

以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>

其他回答

和我一起工作

jQuery自动完成

我尝试寻找如上所述的事件,但当请求函数触发时,它似乎不可用。我使用this.element.attr(“id”)来获得元素的id,它似乎工作得很好。

对于所有事件,不限于jQuery可以使用

var target = event.target || event.srcElement;
var id = target.id

事件的地方。目标失败,则返回事件。IE的srcElement。 澄清一下,上面的代码不需要jQuery,但也可以使用jQuery。

你可以试着用:

$('*').live('click', function() {
 console.log(this.id);
 return false;
});

在事件属性中触发事件的元素

event.currentTarget

我们得到DOM节点对象,在其上设置事件处理程序。


最嵌套的节点开始冒泡进程,我们有

event.target

事件对象总是事件处理程序的第一个属性,例如:

document.querySelector("someSelector").addEventListener(function(event){

 console.log(event.target);
 console.log(event.currentTarget);

});

更多关于事件委托的信息,请访问http://maciejsikora.com/standard-events-vs-event-delegation/

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

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