每当我点击body元素时,我都会收到未定义的错误。不知道问题出在哪里..
$('body').on('click',function() {
console.log($(this).attr('id'));
})
答案 0 :(得分:1)
在jQuery事件中,回调this
上下文始终等于您为其分配事件的对象。对于$('body').on('click'
,只要用户点击,回调this
将永远是body
DOM元素。
如果您想获得被点击次数最多的元素,则需要访问事件的target
属性:
$('body').on('click', function(e)
{
console.log(e.target.id); // it is "" if no id presented
});
检查此代码段:
$('body').on('click', function(e)
{
$("#result").text(e.target.id === "" ? "No ID" : e.target.id);
});

div {
display: inline-block;
width: 50px;
height: 50px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="background-color: red;" id="red"></div>
<div style="background-color: green;" id="green"></div>
<div style="background-color: blue;" id="blue"></div>
<div style="background-color: black;" id="black"></div>
<div style="background-color: yellow;"></div>
<br/><span id="result"></span>
&#13;