给出这个html
<div class="my_div">a</div>
<div class="my_div">b</div>
<div class="my_div">c</div>
<div>other</div>
我想选择所有.my_div
元素,但不是此类中的最后一个元素,这不正确
$(".my_div:not(:last-child)").css({
color: "#090"
});
如何从一些类中选择所有元素,除了最后一个元素?
答案 0 :(得分:11)
:last-child
就是最后一个孩子,而不是给定标记的最后一个孩子。
jQuery提供了:last
selector,它可以满足您的需求,但是它具有jQuery所做的成本,而不是浏览器所做的事情。因此:
$("div.my_div:not(:last)").css({
color: "#090"
});
答案 1 :(得分:0)
也许是这样:
$(".my_div").each(function(ind,el){
if(el == $(".my_div:last")[0]) return true;//continue;
$(el).css({color: "#090"});
});
答案 2 :(得分:-1)
可能是最简单的:
// add .nostlasts class to all .my_div divs
$('.my_div').addClass('notlasts');
// remove .nostlasts class from last .my_div
$( $('.my_div')[ $('.my_div').length ] ).removeClass('notlasts');