DOM查找ID返回undefined

时间:2015-09-30 11:05:53

标签: javascript jquery

每当我点击body元素时,我都会收到未定义的错误。不知道问题出在哪里..

$('body').on('click',function() {
    console.log($(this).attr('id'));
})

1 个答案:

答案 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;
&#13;
&#13;