是否有一种简单的方法来设置一个带有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/
答案 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');
});