如何使用$(this)获取父级

时间:2013-10-27 22:36:09

标签: javascript jquery

我正在尝试进一步理解遍历并正确使用$(this)

我理解$(this)用于引用上下文。但是,假设我有三个彼此相同的项目(按HTML方式),如果用户点击输入,我希望事件不仅发生在用户选择的项目上,而且能够访问父元素".item"也是如此。这样,我可以隐藏".item"中的其他元素,因为上下文将是用户点击的"input"

这是我感到困惑的地方。当用户点击输入($('input').on('click', doSomething);)时,我仅限于输入的上下文 - 输入中没有任何内容,所以我想访问输入上下文之外的其他元素。

然后我尝试使用$(this)说我只希望这个事件只发生在这个项目上,不会影响所有项目。

以下是代码示例:JSFIDDLE

我已经尝试过对此进行研究,但是我找不到这样的实例的大量信息,所以希望这也可以使其他人受益。我可以随意对内容/标题进行编辑。

2 个答案:

答案 0 :(得分:8)

获取jQuery集中元素的直接父元素:parent。 (如果你的集合只有一个元素,就像$(this)那样,它将为你提供该元素的直接父元素。)

在与给定选择器匹配的jQuery集中查找与元素最接近的元素,从当前元素开始:closest。 (如果你的集合只有一个元素,就像$(this)那样,它将为你提供第一个匹配选择器的元素,从那个元素开始,然后查看它的父元素,然后它的父元素,等)

答案 1 :(得分:1)

这应该是您的点击处理程序代码:

function doSomething(event) {
    $(event.target).parent().find('ul').hide();
}