javascript - jQuery 获取被点击元素的父 jQuery 对象

标签 javascript jquery

我的 HTML 包含许多这样的对象:

<div class="class">
  <div class="disconnect_btn">Click here</div>
  <input type="hidden" name="ID" value="12"/>
</div>

我有一个函数将另一个函数绑定(bind)到按钮元素。像这样:

$('.disconnect_btn').bind('click',function(e){
    disconnectFunction(e);
});

我想做的是首先获取按钮所在的 Div,我尝试使用 e.parents('.class') 方法,但这总是返回错误,如 object has no方法... 我的第二个目标是从父 Div 中的隐藏输入字段中提取值属性。

function disconnectFunction(e){
    var parent = e.parents('.class'));  //returns error
    var ID = parent.find('input:hidden[name=ID]').attr('value');
    console.log( ID );
}

我也试过 this 和 $(this) 选择器,但不知何故我现在卡住了,也许有一个我找不到的简单解决方案。

最佳答案

您将事件作为参数传递而不是传递 DOM。

你可以按照下面的方式从事件中传递它,

$('.disconnect_btn').on('click',function(e){
    disconnectFunction(e.target);
});

在 disconnectFunction 中,您可以按如下方式使用它。

function disconnectFunction(e){
    var parent = $(e).parents('.class'));  //returns error
             ---^^^^^-----
    var ID = parent.find('input:hidden[name=ID]').attr('value');
    console.log( ID );
}

关于javascript - jQuery 获取被点击元素的父 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16230244/

相关文章:

javascript - 如何向函数添加方法?

javascript - 通过单击链接更改特定 Div 背景颜色

javascript - 在 Javascript 中访问柱形图的数组时出现问题

jquery - 单击另一个DIV时停止播放音频

jquery - StackOverflow 对标签弹出窗口使用什么类型的动画?

javascript - 如何使用 jquery、javascript、ajax 将模态信息发布到 api

javascript - 使用 HTML-CSS-JS 在触摸事件上播放 MP3

javascript - Internet Explorer 不支持 jquery

Javascript 通过 AJAX 实现 Bootstrap Modal

jquery - 表格行的过渡效果