问答中心分类: JAVASCRIPT获取引发事件的元素的ID
0
匿名用户 提问 1天 前

有没有办法获取引发事件的元素的ID?
我在想这样的事情:

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

当然,除了vartest应包含id"aaa",如果事件是从第一个窗体激发的,并且"bbb",如果事件是从第二个窗体激发的。

22 Answers
0
Gemma 回答 1天 前

供参考,试试这个!它起作用了!

jQuery("classNameofDiv").click(function() {
    var contentPanelId = jQuery(this).attr("id");
    alert(contentPanelId);
});
HPWD 回复 1天 前

@gemma另一个解决方案对我不起作用,但这个确实起作用。谢谢你迟到了。

linuxatico 回复 1天 前

@dlackey对我来说也是一样,另一个解决方案在我的firefox 12上不起作用,但这个解决方案起作用了。谢谢

Matt Fletcher 回复 1天 前

顶级答案似乎不适用于获取嵌入式SVG中元素的ID。$(this).attr("id");

samrap 回复 1天 前

请记住,如果您的单击事件位于包含子元素的元素上,e.target将为您提供导致触发事件的确切元素,即使事件是子事件,而this将为您提供事件附加到的元素。

0
dsch 回答 1天 前

虽然在其他帖子中也提到了这一点,但我想说清楚:
$(event.target).id未定义
$(event.target)[0].id提供id属性。
event.target.id还提供了id属性。
this.id提供id属性。

$(this).id未定义。
当然,jQuery对象和DOM对象之间存在差异。“id”是一个DOM属性,因此您必须在DOM元素对象上才能使用它。
(它绊倒了我,所以它可能绊倒了其他人)

artaxerxe 回复 1天 前

对我来说,event.target.id什么都不给!

HellBaby 回复 1天 前

@这意味着你点击的元素没有id:P;也不要将jquery用于这类事情。。。。使用事件javascript属性,因为它更快。

Souleste 回复 1天 前

$(event.target).attr('selector');对我来说效果很好。

0
Ally 回答 1天 前

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

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

哪里event.target失败,它依赖于event.srcElement对于IE。

xrDDDD 回复 1天 前

不使用jQuery意味着运行更少的代码行,同时获得完全相同的结果,如上图所示。jQuery抽象出js。这是js的直接答案,看看尺寸!

Morfidon 回复 1天 前

只使用“this”关键字不是更好吗?它总是让您能够访问调用事件的元素的属性?

birgersp 回复 1天 前

为了得到这个答案,我只需要翻遍所有jQuery的废话。谢谢这比以往任何时候都更加相关:needsmorejquery。通用域名格式

0
Espo 回答 1天 前

您可以使用(this)引用激发函数的对象。
'this'是一个DOM元素,例如,被click、each、bind等方法调用。
以下是您可以了解更多信息的地方:http://remysharp.com/2007/04/12/jquerys-this-demystified/

TCHdvlp 回复 1天 前

如果你有这样的函数$(html).click()(this)将返回html对象,而不是单击的元素

0
SMut 回答 1天 前

我从数据库中动态生成一个表,接收JSON格式的数据并将其放入表中。每个表行都有一个唯一的ID,这是进一步操作所需的,因此,如果更改DOM,则需要不同的方法:

$("table").delegate("tr", "click", function() {
   var id=$(this).attr('id');
   alert("ID:"+id);  
});
Michael K 回复 1天 前

哦,是的,这就是我要找的。它同样适用于较新的“on”,因为“delegate”现在已被弃用。我从DB数据中动态创建了复选框,当然,它们都有不同的ID,我需要使用这些ID在单击时执行一些操作。我在这里使用这个方法来获取实际点击的ID。在老式的JS中,我只是从复选框的HTML中的每个复选框传递id,但在jQuery事件处理程序模型中不能这样做。