Javascript 当我点击它的任何一个子元素时,如何获得最顶端的父Id?
嗨,我有下面的HTML代码Javascript 当我点击它的任何一个子元素时,如何获得最顶端的父Id?,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,嗨,我有下面的HTML代码 <div id='parentDiv'> <div class='firstDiv'> <div class='firstDivChild1'></div> <div class='firstDivChild2'> <div class='firstDivChild2_Child1'></div>
<div id='parentDiv'>
<div class='firstDiv'>
<div class='firstDivChild1'></div>
<div class='firstDivChild2'>
<div class='firstDivChild2_Child1'></div>
<div class='firstDivChild2_Child2'></div>
</div>
</div>
<div class='secondDiv'>
<div class='secondDivChild1'>
<div class='secondDivChild1_child'>
<div class='secondDivChild1_child_child'></div>
</div>
</div>
</div>
</div>
现在,我的要求是,当我单击任何div时,我希望获得最顶端的父Id(即parentDiv)。目前,我正在使用下面的脚本获取父Id
<script type='text/javascript'>
$('div').click(function(e){
var parentDivId = (e.target).parentNode.id;
alert(parentDivId );
});
</script>
$('div')。单击(函数(e){
var parentDivId=(e.target).parentNode.id;
警报(parentDivId);
});
但它不起作用。任何人都可以修改此代码以达到我的要求。提前谢谢 然后使用。单击的任何子体都将向上冒泡事件(因此冒泡),并将起到与单击父体相同的作用。因此,将单击处理程序添加到父级也可以执行相同的操作
$('#parentDiv').on('click',function(){
var id = this.id
});
如果该父DIV在文档中是唯一的,那么您可以通过ID引用它,即$(“#parentDiv”),但如果它不是唯一的,那么您应该更改HTML并添加到parentDiv某个类(即parentDiv),并且您可以通过这个表达式$(this)引用它 你的要求还不完全清楚,但根据你的一些评论,我的猜测是最好的 使用事件冒泡,您可以检查文档中的所有点击,然后确定点击源于
e.target
,然后您可以确定该点击源于您的div树还是其他地方:
$(document).click(function(e) {
// determine if click was in our div tree or not
if ($(event.target).closest("#parentDiv").length) {
// click was in our parentDiv tree
} else {
// click was not in our parentDiv tree
}
});
无论单击位于何处,您都可以随时使用此jQuery获取div树的顶部id=“parentDiv”
:
$("#parentDiv")
如果您只需要位于所单击内容上方的最上面的div,则无论单击在文档中的什么位置,都可以使用如下事件冒泡来获得:
$(document).click(function(e) {
e.stopPropagation();
var topMostDiv = $(e.target).parents("div").last();
// do whatever you want with topMostDiv here
});
试试这个小功能:
$.fn.root = function() {
var $all = $( this[0] ).parents();
// omit "html", "body" and one index to the last item;
return $all.slice( $all.length - 3, $all.length - 2 );
};
示例用法:
$('input').click(function() {
alert($(this).root().prop('id'));
});
你能清楚地定义最顶层的级别吗?@GovindKamalaPrakashMalviya我需要第一个div的id,即id元素没有id:PIt仍然不清楚你想要什么。如果有人点击firstDivChild2_Child1,你想要什么id?@Pravallika69-你已经问了9个问题,从来没有接受过答案。事实并非如此。回到前面的问题,选择最佳答案,点击答案左侧的复选标记接受。否则,有些人会觉得帮助你毫无意义,因为你不会奖励任何帮助你的人。你也应该投票给所有提供帮助的答案。谁知道他们想要什么?我怀疑OP的英语说得不是很好,因为即使是直接的问题也会得到不清楚的答案。
$('input').click(function() {
alert($(this).root().prop('id'));
});