隐藏除了最后2之外的所有Div。可以增加Div的数量

时间:2013-09-18 17:13:49

标签: javascript jquery html css

我想隐藏最后2 以外的所有 Divs 。在我的情况下,Div的数量可以增加

我搜索了一些主题,所以现在我能够隐藏除了最后一个div之外的所有主题。

到目前为止,这是我的代码:http://jsfiddle.net/D83ZC/11/

HTML:

<div class="container">
    <p> This is Div 1
</div>

<div class="container">
    <p> This is Div 2
</div>

<div class="container">
    <p> This is Div 3
</div>

<div class="container">
    <p> This is Div 4
</div>

<div class="container">
    <p> This is Div 5
</div>   

CSS:

.container{
    border:black 1px solid;
}

Jquery的:

$('.container').not(':last').hide();

2 个答案:

答案 0 :(得分:7)

使用.slice()方法。

$(".container").slice(0, -2).hide();

这与Array.prototype.slice的行为相同,您提供的第二个索引可能是一个负数,从最后开始计算。

这将非常快,并且不依赖于jQuery(通过Sizzle)附带的非标准选择器,这意味着浏览器的本机选择器引擎将进行初始DOM选择。

答案 1 :(得分:4)

您可以使用CSS3选择器nth-last-child

$('.container:nth-last-child(n+3)').css('background-color', 'red');

updated demo

这将从0开始选择与n + 3匹配的所有项目,因此这是第三个,第四个,依此类推;从最后开始