父母,孩子的jquery短手

v3n*_*3nt 3 jquery children parent relative-path

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

即到

//  <div> <div> <div> <ul> matched item where script is called from </ul> </div> </div> <a class="postMore">LINK</a> </div>
Run Code Online (Sandbox Code Playgroud)

我用;

$(this).parent('div').parent('div').parent('div').children('a.postMore').css('display','block');
Run Code Online (Sandbox Code Playgroud)

这看起来有点麻烦.有没有更好的方法来处理相关元素?

Gab*_*oli 6

有多种方法可以使用jQuery遍历DOM,因此您只需要在html结构中识别模式,并使用最相关的方法.

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

$(this).closest('div:has(a.postMore)').find('a.postMore');
Run Code Online (Sandbox Code Playgroud)

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


  • .closest() 将向上移动DOM,直到找到与我们作为参数传递的选择器匹配的元素.
  • 我们的选择器div:has(a.postMore)意味着div包含与类的链接postMore
  • 然后我们使用它.find()来达到实际的链接.