How to get the id of the element clicked using jQuery这个问题的答案是获取clicked元素的id。
但是它给了所有id。
例如
<div id="major">
<div id="two"> </div>
</div>
点击div two
时,我只想id
two
$("body").on('click','div',function()
{
alert(this.id);
}); //It alerts the two and major. But i want two only.
。但是下面的脚本也会给出父ID。
$("body").on('click','div',function()
{
alert(this.id);
mkh(); #undeclared function
});
为此,我试图将一些未申报的功能放在我想要的结果中。例如
DllMain
是否有任何inbuild方法可以做到这一点。 JS Fiddle
答案 0 :(得分:3)
您需要将父 event propagation 停止到子元素:
$("body").on('click','div',function(e){
e.stopPropagation();
alert(this.id);
mkh(); #undeclared function
});
<强> Working Demo 强>
答案 1 :(得分:1)
使用event.target
对象。
$("body").on('click', 'div', function(e) {
alert(e.target.id);
e.stopPropagation();
});
&#13;
#two {
width: 100px;
height: 100px;
background: blue;
}
#major {
width: 500px;
height: 500px;
background: orange;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="major">
<div id="two"></div>
</div>
&#13;
答案 2 :(得分:1)
不更改目标元素。
事件对象可用于实现此目的。
$(event.target)
将提供当前目标元素
单击内部div时,使用event.stopPropagation()
停止事件的传播(bubbling
)。否则你会看到内部和外部的两个警报。外部分区
$("body").on('click','div',function(event)
{ event.stopPropagation();
var _getId = $(event.target).attr('id');
alert(_getId);
});
选中此jsfiddle
答案 3 :(得分:0)
这不太难。看这个:
$("body").on('click','#two',function()
{
alert(this.id);
});