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


当前回答

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

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

其他回答

你可以试着用:

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

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

你可以简单地使用:

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

Or

$(event.target).attr("id");

但是$(this).attr("id")将返回事件监听器所附加的元素的id。 而当我们使用$(event.target).attr("id")时,它将返回被单击元素的id。 例如,在<div>中,如果我们有一个<p>元素,那么如果我们点击'div' $(event.target).attr("id")将返回<div>的id,如果我们点击'p',那么$(event.target).attr("id")将返回<p>的id。 所以根据你的需要使用它。

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

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

这适用于比上述答案中提到的事件参数更高的z-index:

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

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

通过这种方式,您将始终获得元素(在本例中为li)的id。此外,当单击父元素的子元素..