1

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

我已经搜索了一些主题,所以现在我可以隐藏除最后 1 个 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;
}

查询:

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

2 回答 2

7

使用.slice()方法。

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

这与 的行为相同Array.prototype.slice,您提供的第二个索引可能是从末尾倒数的负数。

这将非常快,并且具有不依赖于 jQuery 包含的非标准选择器(通过 Sizzle)的好处,这意味着浏览器的本地选择器引擎将执行初始 DOM 选择。

于 2013-09-18T17:17:17.563 回答
4

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

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

更新的演示

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

于 2013-09-18T17:29:00.273 回答