1

重複の可能性:
jqueryは、クラスで最も近い以前の兄弟を見つけます

以下のコードは完全に機能しています

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

しかし、私が.selectedを一番上​​に移動すると(以下に示されています)、それは機能しません.htmlを操作せずに2番目のケースで私のためにそれを機能させ、.prev()メソッドから.selected要素を取得する方法を誰か教えてもらえますか

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

2 に答える 2

4

.prevAll()の代わりに使用する必要があります.prev()。後者はdiv、あなたの場合の直前の先行者のみをチェックします。prevAll()ただし、すべての先行をチェックして、要素を見つけます。セレクターに一致する複数の先行操作がある場合は.prevAll('.selected').first()、最も近い先行操作のみを取得するために使用します。

デモ: http://jsfiddle.net/ThiefMaster/GnEK5/

于 2012-05-14T09:45:26.693 に答える
0

あなたが試すことができます

$('p').prevAll('.selected');
于 2012-05-14T09:41:41.427 に答える