1
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start"></a>

$('#start') のみにアクセスできるとします。

$('#start').prev('span') を試しましたが、動作しませんでした。

4

2 に答える 2

4
 $('#start')
    .parent()       // gets one up
    .find('span')   // gets the span element

jsbinサンドボックスを使用した同じコード


ノート:

prev() は前のタグのみを取得するため使用できません。アンカータグからのスパンは、前のタグではなく、前のタグの前のタグです。

jQueryドキュメントから

一致した要素の各セットの一意の前の兄弟を含む要素のセットを取得します。オプションの式を使用して、一致したセットをフィルタリングします。以前のすべての兄弟ではなく、直前の兄弟のみが返されます。

prev([filter])

次のように、前のタグに複数のタグが含まれている場合にフィルターを適用します。

<div>
   <span></span>
   <a></a>
</div>
<a id="a2"></a>

使用するスパンを取得するには:

$('#a2').prev('span')
于 2009-09-22T06:50:57.210 に答える
0

奇妙なことprevAllに、最初の要素のすぐ後ろにある最初のものから始めて、逆方向に進んでいるようです。理にかなっていると思います。いずれにせよ、以下は私のために働いた:

//jquery :

$(document).ready(function(){
    $("#start").prevAll("span:first").css("font-weight", "bold");
  });

// html: 


<span>This is the span I don't want to select</span>
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start">Stuff</a>
于 2009-09-22T07:05:18.943 に答える