Javascript Jquery检测主父div
我遇到的问题是,我想通过单击来获取父id。当我有一堆div时,问题就出现了,如下所示:Javascript Jquery检测主父div,javascript,jquery,Javascript,Jquery,我遇到的问题是,我想通过单击来获取父id。当我有一堆div时,问题就出现了,如下所示: <div id="files"> <div id="F1"><span>Label</span></div> <div id="F2"><span>Label</span></div> <div id="F3"><span>Label</span></div&g
<div id="files">
<div id="F1"><span>Label</span></div>
<div id="F2"><span>Label</span></div>
<div id="F3"><span>Label</span></div>
<div id="F4"><span>Label</span></div>
</div>
标签
标签
标签
标签
我的脚本指出,如果我单击F#div区域,它将引用其父文件is files,但如果我单击标签span,它将引用回id为F#的父文件is。我基本上需要它,如果在files div中单击,即使没有显示该div的暴露区域,我也可以获得id
我使用的jquery是这样的:
$(window).load(function(){
$(document).bind("contextmenu", function(event) {
event.preventDefault();
var pid = event.target.parentNode.id;
var id = event.target.id;
//$(pid).val().substring(0,4)
$(this).parent();
//alert((pid).val().substring(0,4));
var pid = (pid).substring(0,6);
if(pid === "files" || pid === "filess" || pid === "folder"){
$("<div class='custom-menu'>
<a onclick='fileHide()'>Open</a>
<br/>
<a onclick='newFile()'>Rename</a>
<br/>
<a href='#'>Share Folder</a>
<br/>
<a onclick='deleteFile(\""+ id +"\")'>Delete</a>
</div>").appendTo("body")
.css({top: event.pageY + "px", left: event.pageX + "px"});
}else{
$("<div class='custom-menu'>
<a onclick='fileHide()'>Upload</a>
<br/>
<a onclick='newFile()'>New Folder</a>
<br/><a href='#'>Share Folders</a>
<br/><a href='#'>Deleted files</a>
</div>").appendTo("body")
.css({top: event.pageY + "px", left: event.pageX + "px"});
}
}).bind("mouseup", function(event) {
$("div.custom-menu").hide();
});
});
$(窗口).load(函数(){
$(文档).bind(“上下文菜单”,函数(事件){
event.preventDefault();
var pid=event.target.parentNode.id;
var id=event.target.id;
//$(pid).val()子字符串(0,4)
$(this.parent();
//警报((pid.val().substring(0,4));
变量pid=(pid).substring(0,6);
如果(pid==“文件”| | pid==“文件”| | pid==“文件夹”){
$("
)。附于(“正文”)
.css({顶部:event.pageY+“px”,左侧:event.pageX+“px”});
}
}).bind(“mouseup”,函数(事件){
$(“div.custom-menu”).hide();
});
});
像这样试试
$(this).parent();
对于每个单击元素调用,它将直接给出所选(单击)元素的父元素
要知道它的id,请尝试
var parent_id = $(this).parent().attr('id');
alert(parent_id);
如何附加事件处理程序?正如您所知,
var pid=event.target.parentNode.id
是纯JavaScript,这里根本没有jQuery。@acdcjunior:$(event.target).parent().attr('id')
看起来没有多大改善。这不是做任何事情的正确方法。给这些元素一个类,并将contextmenu
事件处理程序附加到它们。显式检查父元素的id
属性是不可维护的。更新了事件处理程序绑定到document
的整个jquery/javascript部分,因此此
将是document
。