我不得不影响与其他元素相关的元素,但我的方法看到一点业余!
即
// <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');
这似乎有点麻烦。有没有更好的方法来处理相关元素?
答案 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