问题描述
|
我一直不得不影响与其他元素相关的元素,但是我的方法有点业余!
即到
// <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\');
这似乎有点麻烦。有没有更好的方法来处理相关元素?
解决方法
使用jQuery遍历DOM有多种方法,因此您只需要在html结构中识别模式,并使用最相关的方法即可。
在您的示例中,这应该可以执行您想要的操作,并且可以提供更大的灵活性。
$(this).closest(\'div:has(a.postMore)\').find(\'a.postMore\');
演示http://jsfiddle.net/gaby/j2Wgv/
.closest()
将上升到DOM
直到找到一个
匹配我们将其作为参数传递的选择器。
我们的选择器是div:has(a.postMore)
,这意味着a5ѭ包含类postMore
的链接
然后我们使用ѭ7到达实际的链接。
,您可以使用.closest()
向上搜索DOM树。因此,如果给包含a.postMore
的div一个类,则可以使用$(this).closest(\'class\').children(\'a.postMore\')
。
这里的文件