.prev()方法不起作用

时间:2012-05-14 09:39:58

标签: javascript jquery html class

  

可能重复:
  jquery find closest previous sibling with class

下面给出的代码工作正常

<!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>

2 个答案:

答案 0 :(得分:4)

您需要使用.prevAll()代替.prev()。后者仅检查您案例中的前一个divprevAll()然而检查所有前置因素,以便找到您的元素。如果您有多个与您的选择器匹配的前任,请使用.prevAll('.selected').first()仅获取最近的选择。

演示:http://jsfiddle.net/ThiefMaster/GnEK5/

答案 1 :(得分:0)

你可以尝试

$('p').prevAll('.selected');