Javascript Jquery检测主父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

我遇到的问题是,我想通过单击来获取父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>
<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