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



是否有一个简单的方法来设置一个选择器与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/

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

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

我不确定你是否可以在一个选择器中做到这一点,但你可以添加一个过滤器并利用:not选择器…如所示(jsFiddle)…如果能在一个选择器中实现这个功能就很酷了

最新更新