jQuery первый и последний селекторы с одним / двумя элементами - PullRequest
0 голосов
/ 20 июля 2011

Есть ли простой способ настроить селектор с помощью 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/

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Измените ваши :last правила, чтобы они также были :not(:first).Таким образом, они будут стрелять, только если найдено более 1 элемента.

$('div#firstDiv span:last:not(:first)').click(function(e) {
    alert('last span clicked');
}); 
1 голос
/ 20 июля 2011

Я не уверен, что вы можете сделать это в одном селекторе, но вы можете добавить фильтр и использовать селектор: not ... как видно здесь (jsFiddle) ... было бы здорово сделать это в одном селекторе, хотя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...