JQuery:获取被点击元素的父元素id

前端之家收集整理的这篇文章主要介绍了JQuery:获取被点击元素的父元素id前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的div:
<div id="popupDiv1" class="popupDivClass">
    <a id="popupDivClose" class="popupCloseClass">x</a>
</div>

当我点击’x’时(我想运行一个名为disablePopup(id)的jquery函数;其中id是相应popupDiv的id(我有很多popupDiv,每个都有它自己的X按钮).

为了做到这一点,我实现了以下内容

$(".popupCloseClass").click(function (event) {
    var buttonID = $(event.target).attr("id");
    var id = $( buttonID).closest("div").attr("id");
disablePopup(id);
});

基本上我得到了popupCloseClass的id,然后我通过最接近的方法得到它的id(相应的popupDiv)的id.然后我调用disablePopup.

但这不起作用.

我甚至尝试使用var buttonID = $(buttonID).parent().attr(“id”);方法,但也没有工作.

我也试过var id = this.id;

任何帮助是极大的赞赏

谢谢

解决方法

而不是使用最接近你可以像这样使用父…
var id = $(this).parent().attr("id");

请注意,您可以使用this关键字来引用启动事件的元素.正如您所拥有的那样,您使用buttonID的值作为元素选择器,其值为“popupDivClose”并且在开始时不添加#它将不会搜索ID,而是使用名为“popupDivClose”的标记元素.

如果你想继续使用buttonID,你可以使用这行代码来使它工作……

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

但是,我宁愿写这样的整个事件……

$(".popupCloseClass").click(function (event) {
    event.preventDefault();

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

    disablePopup(id);
});

注意event.preventDefault()的使用;这将确保浏览器不会处理链接点击(即页面导航)的自然操作 – 但是,至少在Chrome中,您需要为导航指定href值

Here is a working example

猜你在找的jQuery相关文章