如何优化寻找$(this)的亲属

时间:2011-04-08 16:45:52

标签: jquery

我经常发现自己正在尝试做一些与点击元素相关的事情,并最终得到一个看起来像这样的字符串:

$('input.Button').click(function(event) {
   $(this).parent('div.Picture').parent('div.SelectOption').children('div.Options').children('p.Option').show();
});

我强烈怀疑通过父母向DOM旅行并通过儿童退回是昂贵的,更不用说PITA写了,但我还不知道更好的方法。如果有人能告诉我如何更好地写这样的东西,我会很感激。在所有情况下,正在改变的元素与点击的元素有关,所以我不能只做一个简单的事情:

$('input.Button').click(function(event) {
   $('p.Option').show();
});

因为它会显示所有内容,而不仅仅是与输入按钮位于同一容器中的内容。

请注意,这是一个通用示例,但我发现我的工作充满了这样的示例,我不知道如何优化它。

1 个答案:

答案 0 :(得分:3)

我使用.closest()

$('input.Button').click(function(event) {
   $(this).closest('div.SelectOption').find('div.Options > p.Option').show();
});