1

给定这个 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"
            });

如何从某个类中选择所有元素,除了最后一个元素?

4

3 回答 3

11

:last-child正是这样,最后一个孩子,而不是给定标签的最后一个孩子。

jQuery 提供了:lastselector,它可以做你想做的事,但代价是 jQuery 做的事情而不是浏览器做的事情。因此:

$("div.my_div:not(:last)").css({
    color: "#090"
});

实例| 来源

于 2012-11-09T22:22:52.823 回答
0

或许是这样的:

$(".my_div").each(function(ind,el){
 if(el == $(".my_div:last")[0]) return true;//continue;
 $(el).css({color: "#090"});
});

http://jsfiddle.net/mys3k/1/

于 2012-11-09T22:25:13.417 回答
-1

如果您使用带有 jQ​​uery 的 css 类来解决这个问题,可能是最简单的:

// 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');
于 2012-11-09T22:26:49.443 回答