父母,孩子的jquery短手

时间:2011-05-23 09:59:37

标签: jquery parent relative-path children

我不得不影响与其他元素相关的元素,但我的方法看到一点业余!

//  <div> <div> <div> <ul> matched item where script is called from </ul> </div> </div> <a class="postMore">LINK</a> </div>
我使用;

$(this).parent('div').parent('div').parent('div').children('a.postMore').css('display','block');
这似乎有点麻烦。有没有更好的方法来处理相关元素?

2 个答案:

答案 0 :(得分:6)

traverse the DOM with jQuery有多种方法,因此您只需要在html结构中识别模式,并使用最相关的方法。

在你的例子中,这应该做你想要的,它允许更多的灵活性。

$(this).closest('div:has(a.postMore)').find('a.postMore');

演示 http://jsfiddle.net/gaby/j2Wgv/


  • .closest()会向上移动DOM 直到找到一个元素 匹配我们传递它作为参数的选择器。
  • 我们的选择器为div:has(a.postMore),表示div包含类postMore的链接
  • 然后我们使用.find()来获取实际链接。

答案 1 :(得分:2)

您可以使用.closest()向上搜索DOM树。因此,如果您给包含a.postMore类的div,则可以使用$(this).closest('class').children('a.postMore')。 文档here