JQuery: Get the parent element id of a clicked element

后端 未结 4 417
鱼传尺愫
鱼传尺愫 2021-01-18 01:38

I have a div like this:

x
4条回答
  •  鱼传尺愫
    2021-01-18 01:48

    instead of using closest you can use parent like this...

    var id = $(this).parent().attr("id");
    

    Notice you can use the this keyword to reference the element that kicked off the event. As you have it, you are using the value of buttonID as the element selector which would have a value of "popupDivClose" and without adding a # at the start it will not search for an ID, but rather a tag element called "popupDivClose".

    If you wanted to keep using buttonID you could have used this line of code to get it working...

    var id = $("#" + buttonID).parent().attr("id");
    

    However, I would have preferred to write the whole event like so...

    $(".popupCloseClass").click(function (event) {
        event.preventDefault();
    
        var id = $(this).parent().attr("id");
    
        disablePopup(id);
    });
    

    notice the use of event.preventDefault(); this will ensure that the browser will not process the natural action for a link click (i.e. page navigation) - though, in Chrome at least, you need to specify a href value for the navigation anyway

    Here is a working example

提交回复
热议问题