jQuery第一个和最后一个选择器,带有一个/两个元素

时间:2011-07-20 00:59:19

标签: jquery jquery-selectors

是否有一种简单的方法来设置一个带有jQuery的选择器,如果有两个或更多元素,只选择'last'元素?如果只有一个元素,我希望第一个选择器触发,但第一个和最后一个选择器都会触发。如果有两个或更多元素,那么一切都按预期运行。我现在有一个工作,我只是检查有多少元素存在,然后设置其他代码,但我认为必须有更好的方法。

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链接 - &gt; http://jsfiddle.net/dXPKz/

2 个答案:

答案 0 :(得分:1)

我不确定你是否可以在一个选择器中执行此操作,但是你可以添加一个过滤器并使用:not selector ...如所见here (jsFiddle) ...这样做很酷一个选择器虽然......

答案 1 :(得分:1)

:last规则更改为:not(:first)。这样,只有找到的元素超过1个时才会触发。

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