【发布时间】:2012-11-15 01:01:48
【问题描述】:
例如:
<div class="mainWrapper">
<div class="FirstLayer">
<input class="foo" value="foo" />
</div>
<div class="SecondLayer">
<div class="thirdLayer">
<input class="fee" />
</div>
</div>
</div>
假设我将 input.fee 作为 jQuery 对象,我还需要获取 input.foo 的值。
现在我知道我可以使用多种方法,例如$(this).parents(':eq(2)').find('.foo'),但我想在具有不同级别和节点数量的布局上使用这种方法。
所以我想知道是否有一种方法可以简单地从.fee 开始,然后一直向上直到找到第一个匹配元素,.prevAll() 似乎没有这样做。有很多 .foo 和 .fee 元素,我特别需要在上下文中高于 .fee 的第一个元素。
【问题讨论】:
-
您能否展示一个包含多个
foo和fee字段的示例,因为遍历很可能会有所不同 -
你可以使用
closest方法,$(this).closest('.mainWrapper').find('.foo') -
上升永远不会到达
foo,因为它不是fee的祖先。它是fee的祖先的兄弟 -
@Asad 所以没有一个函数可以简单地在 dom 树上检查一个类的所有元素,无论是否是祖先?
-
@LaserBeak 对。它被称为树是有原因的——你不能向上遍历并期望到达一棵树的所有分支和叶子。
标签: javascript jquery