下面给出的代码工作正常
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div><span>Hello</span></div>
<p class="selected">Hello Again</p>
<p>And Again</p>
<script>$("p").prev(".selected").css("background", "yellow");</script>
</body>
</html>
但是当我移动时。在顶部选择(如下所示)然后它不起作用。任何人都可以告诉我如何让它为我工作并在第二种情况下从.prev()方法中获取.selected元素没有操纵html
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p class="selected">Hello Again</p>//Moved to top
<div><span>Hello</span></div>
<p>And Again</p>
<script>$("p").prev(".selected").css("background", "yellow");</script>
</body>
</html>
答案 0 :(得分:4)
您需要使用.prevAll()
代替.prev()
。后者仅检查您案例中的前一个div
。 prevAll()
然而检查所有前置因素,以便找到您的元素。如果您有多个与您的选择器匹配的前任,请使用.prevAll('.selected').first()
仅获取最近的选择。
答案 1 :(得分:0)
你可以尝试
$('p').prevAll('.selected');