0

我试图进一步理解遍历和正确使用$(this).

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

这就是我感到困惑的地方。当用户点击输入$('input').on('click', doSomething);

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

这是一个代码示例:JSFIDDLE

我已经尝试对此进行研究,但在这样的实例上找不到太多信息,因此希望这也可以使其他人受益。随意对内容/标题进行编辑,因为我试图尽可能具体。

4

2 回答 2

8

要获取 jQuery 集合中元素的直接父级:parent. (如果您的集合只有一个元素,那么$(this)这将为您提供该元素的直接父元素。)

要找到与给定选择器匹配的 jQuery 集合中的元素最近的元素,从当前元素开始closest:(如果您的集合只有一个元素,那么$(this)这将为您提供与选择器匹配的第一个元素,该选择器从该元素开始,然后查看其父级,然后查看其父级,等等。)

于 2013-10-27T22:40:18.600 回答
1

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

function doSomething(event) {
    $(event.target).parent().find('ul').hide();
}
于 2013-10-27T22:52:09.960 回答