我希望在用户点击页面时获取页面上任何元素的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);
});});
答案 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