You*_*sef 8 html asp.net jquery parent
我有这样的div:
<div id="popupDiv1" class="popupDivClass">
<a id="popupDivClose" class="popupCloseClass">x</a>
</div>
Run Code Online (Sandbox Code Playgroud)
当我点击'x'时(我想运行一个jquery函数disablePopup(id);,其中id是相应的popupDiv的id)(我有很多popupDiv,每个都有它自己的X按钮.
为了做到这一点,我实现了以下内容
$(".popupCloseClass").click(function (event) {
var buttonID = $(event.target).attr("id");
var id = $( buttonID).closest("div").attr("id");
disablePopup(id);
});
Run Code Online (Sandbox Code Playgroud)
基本上我得到了popupCloseClass的id,然后我通过最接近的方法得到它的id(相应的popupDiv)的id.然后我调用disablePopup.
但这不起作用.
我甚至尝试使用该var buttonID = $(buttonID).parent().attr("id");方法,但也没有工作.
我也试过了 var id = this.id;
任何帮助是极大的赞赏
谢谢
mus*_*fan 13
而不是使用closest你可以parent像这样使用...
var id = $(this).parent().attr("id");
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用this关键字来引用启动事件的元素.正如你所拥有的那样,你使用的值buttonID作为元素选择器,它具有一个值,"popupDivClose"而不是#在开始时添加一个它不会搜索ID,而是一个名为"popupDivClose"的标记元素.
如果你想继续使用buttonID,你可以使用这行代码来使它工作......
var id = $("#" + buttonID).parent().attr("id");
Run Code Online (Sandbox Code Playgroud)
但是,我宁愿写这样的整个事件......
$(".popupCloseClass").click(function (event) {
event.preventDefault();
var id = $(this).parent().attr("id");
disablePopup(id);
});
Run Code Online (Sandbox Code Playgroud)
请注意,使用event.preventDefault();此功能将确保浏览器不会处理链接点击(即页面导航)的自然操作 - 但至少在Chrome中,您需要为导航指定href值