1

私はこのコードを持っています:

<div id="whatever">
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
</div>
<div id="whatever2">
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
</div>

そして、同じ div 内でホバーしたものから、以前のすべてのスパンを jQuery で選択する必要があります。

誰も私がこれを行う方法を知っていますか?

4

4 に答える 4

5

これを実現するには、 prevAll()を使用できます。

prevAll() - 一致した要素のセット内の各要素の先行するすべての兄弟を取得します。オプションでセレクターによってフィルター処理されます。

jsFiddleの例を次に示します。


その例のコードは次のとおりです。

jQuery:

$('span').hover(function(){
  $(this).prevAll().toggleClass('previous');
});

CSS:

.previous {
  color:red;
}
于 2013-05-15T10:16:53.737 に答える
1
var span = $('div').prev().children('span');
于 2013-05-15T10:13:58.260 に答える
0

前の要素を選択するには、 jQuery のprev()メソッドを使用します。この場合、#whatever#whatever2の前の要素です。

$('#whatever2').prev();

その中の要素を選択するには、jQuery のchildren()メソッドを使用するだけです。

$('#whatever2').prev().children();

仕切りのスパンのホバーでこれを行うには#whatever、次を使用できます。

$('#whatever2').on('mouseover', 'span', function() {
    var $parent = $(this).parent(); // #whatever2
    $parent.prev().children(); // The span elements within
});

編集:別の回答へのコメントに基づいて、私は質問を誤解しました。この回答は、前のコンテナ内のすべての要素を選択したい人に関連しています。

于 2013-05-15T10:17:28.653 に答える
0

ここを見てください私はjsfiddle http://jsfiddle.net/4DmqU/を作りました

コードはこちら

html -

<div id="whatever">
 <span>1</span>
 <span>2</span>
 <span>3</span>
 <span>4</span> 
</div>
<div id="whatever2">
 <span>1</span>
 <span>2</span>
 <span>3</span>
 <span>4</span>
</div>

css -

span{
 width:100px;
 height:20px;
 background :#ccc;
 float:left;
 margin: 10px;
}

js -

$('span').hover(function(){
 $(this).prevAll('span').css('background','#000');
});
于 2013-05-15T10:21:29.133 に答える