当使用'this'单击页面时,jquery获取元素id不起作用

时间:2011-10-04 04:22:28

标签: javascript jquery

我希望在用户点击页面时获取页面上任何元素的ID。这里有几个帖子显示使用'this'有效,但我的代码不能用'this'。返回的id未定义。但我使用'事件'技术,它的工作原理。

有人可以解释这些差异吗?

$(function(){

//document or 'body' tags both don't work

$('body').click(function(){

    //var id = event.target.id;
    var id=$(this).attr('id');
    alert (id);
//returned undefined


});

      });

此代码有效

$(function(){

$('body').click(function(event){

    var id = event.target.id;
    //var id=$(this).attr('id');
    alert (id);



});});

2 个答案:

答案 0 :(得分:4)

使用下面的函数,变量id将引用body元素的id本身。

$('body').click(function() {
    var id = $(this).attr('id');
    alert(id); // Will alert "undefined" if the <body> tag has no id
});

使用类似下面的其他函数实际上可以使用event.target执行您想要的操作,body$('body').click(function(event) { var id = event.target.id; alert(id); // Will alert the id if the element has one }); 元素中实际点击的元素:

event.target

因此,简而言之:$(this)是点击的元素,<body>会引用{{1}}标记。

答案 1 :(得分:0)

第一个获取body元素id,而第二个获取接收click事件的body中元素的id