2011-07-20 4 views
0

2つ以上の要素がある場合は、最後の要素のみを選択するjQueryでセレクタを設定する簡単な方法はありますか?要素が1つしかない場合は、最初のセレクタを起動させたいが、最初のセレクタと最後のセレクタの両方が起動する。 2つ以上の要素がある場合、すべてが期待どおりに動作します。私はちょうどいくつかの要素が存在するかどうかを確認してからもう1つのコードを設定するという作業をしていますが、もっと良い方法が必要だと思っています。ライブデモ用1つまたは2つの要素を持つjQueryの最初と最後のセレクタ

jQueryのもの

$('div#firstDiv span:first').click(function(e) { 
    alert('first span clicked'); 
}); 

$('div#firstDiv span:last').click(function(e) { 
    alert('last span clicked'); 
});  

$('div#secondDiv span:first').click(function(e) { 
    alert('first span clicked'); 
}); 

$('div#secondDiv span:last').click(function(e) { 
    alert('last span clicked'); 
}); 

HTMLもの

<div id="firstDiv"> 
    <span>Only Span</span> 
</div> 
<br /> 
<div id="secondDiv"> 
    <span>First Span</span> 
    <br /> 
    <span>Second Span</span> 
</div> 

jsfiddleリンクは - >http://jsfiddle.net/dXPKz/

答えて

1

:lastの規則も:not(:first)に変更してください。この方法では、1つ以上の要素が見つかった場合にのみ発火します。

$('div#firstDiv span:last:not(:first)').click(function(e) { 
    alert('last span clicked'); 
}); 
+0

これはうまくいくようです。私は明日それをテストするときに解決策としてあなたの答えを記します。 – Crag

1

私はあなたが1つのセレクタでこれを行うことができるかどうかわからないんだけど、フィルタを追加して、セレクタではなくセレクタを使用することができます。here (jsFiddle) ...これを1つのセレクタで行うのはクールです...

関連する問題