Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏div中的最后两项_Javascript_Jquery_Html - Fatal编程技术网

Javascript 隐藏div中的最后两项

Javascript 隐藏div中的最后两项,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码,其中我想隐藏div中的最后两项: $('.toggleRoom')。单击(函数(){ $('.showRooms').slice(-2.remove(); }); 1. 2. 3. 如果您的html与上述代码完全相同,您可以尝试以下方法: $(".showRooms div:not(:first-child)"); 否则请尝试此功能之一!简明扼要: function GetExpectFirstDivs(c/*count 4 ignore from first*/){

我有以下代码,其中我想隐藏div中的最后两项:

$('.toggleRoom')。单击(函数(){
$('.showRooms').slice(-2.remove();
});

1.
2.
3.

如果您的html与上述代码完全相同,您可以尝试以下方法:

$(".showRooms div:not(:first-child)");
否则请尝试此功能之一!简明扼要:

function GetExpectFirstDivs(c/*count 4 ignore from first*/){
    return $(".showRooms>div:nth-child(n+"+(c+1)+")");
}
function GetExpectLastDivs(c){
    return $(".showRooms>div:nth-last-child(n+"+(c+1)+")");
}
function GetFirstDivs(c/*count*/){
    return !c?$():$(".showRooms>div:not(:gt("+(c-1)+"))");
}
function GetLastDivs(c){
    return !c?$():$(".showRooms>div:gt(-"+(c+1)+")");
}
现在,例如:如何删除除最后两(n)个div之外的所有div?

GetExpectLastDivs(2/*n*/).remove();
您需要执行
$('.showRooms')。查找('div').slice(-2)。删除()
,因为类
showRooms的
div
中有三个
div
,所以您需要使用
slice(-2)
选择最后两个
div

$('.toggleRoom')。单击(函数(){
$('.showRooms').find('div').slice(-2.remove();
});

1.
2.
3.

单击
您需要隐藏所选div的子级:

var children=$('.showRooms').children();
$('.toggleRoom')。单击(函数(){
//隐藏最后2个
children.show().slice(-2.hide();
//如果要删除而不是隐藏,请使用“删除”:
//children.slice(-2.remove();
});
$('.toggleRoom-1')。单击(函数(){
//隐藏除最后2个以外的所有内容
children.show().slice(0,-2.hide();
//如果要删除而不是隐藏,请使用“删除”:
//切片(0,-2).remove();
});

1.
2.
3.
4.
5.
单击以隐藏最后2个

单击以隐藏除最后2个选项外的所有选项
您必须对其子项使用选择器,而不是对div it selef使用选择器

.showRooms>div
(直接div子项)或
.showRooms div
(所有div子项)

$('.toggleRoom')。单击(函数(){
$('.showRooms>div').slice(-2.toggle();
});

切换房间
1.
2.
3.

对于相同的HTML代码,您需要在Js中进行更改 唯一的问题是您忘记添加子元素类型

 $('.toggleRoom').click(function() {
        $('.showRooms > div').slice(-2).remove();
    });
另一种方法是

$(".showRooms div:not (:first-child)");

这就是你所缺少的:

$('.toggleRoom').click(function() {
    $('.showRooms').children().slice(-2).remove();
});

您只需要在JS下面进行更改

$('.toggleRoom').click(function() {
   $('.showRooms div').slice(-2).remove();
});

缺少
div
选择器,请添加它

  $('.showRooms div').slice(-2).remove();
如果您想更具体一些,可以使用直接子选择器

  $('.showRooms > div').slice(-2).remove();
还有一个选择器:

$('.showRooms div:last-child').prev('div').andSelf().remove();
$('.toggleRoom')。单击(函数(){
$('.showRooms div').slice(-2.remove();
});

1.
2.
3.

如果您只想隐藏最后两项,只需使用css即可

.showRooms分区:最后第n个类型(1),
.展厅分区:第n个最后一个类型(2){
显示:无;
}

1.
2.
3.
我建议使用:

$('.toggleRoom')。打开('click',函数(e){
$('.showRooms>div:gt(-3').hide();
});

单击以隐藏最后2个
1.
2.
3.
4.
5.

$('.showRooms>div').slice(-2).remove();我已经更新了我的回复。你可以看看我的另一个方法:)如果有四个或五个div,它将不起作用。OP只想删除最后两个divs谢谢答案,我们如何删除除最后两个divs之外的所有divs?你可以在我更新的答案(@Ankit Agarwal)中测试第二个方法。欢迎@Grammer。您可以这样做:
$(“.showRooms div:lt(2)”).remove()
谢谢你的回答,我们如何删除除最后两个div之外的所有元素?谢谢你的回答,我们如何删除除最后两个div之外的所有元素?@Gammer在这种情况下,你需要选择从
0
到数组
长度-2
的所有元素。我已经更新了答案。请看一看。谢谢你的回答,我们如何删除除最后两个div之外的所有div?@Gammer使用not()或slice(0,-2)谢谢你的回答,我们如何删除除最后两个div之外的所有div?添加了删除除最后两个div之外的所有div的代码,请查看我的回答谢谢你的回答,除了最后两个div外,我们如何删除所有div?很抱歉-我以为你想隐藏最后两个-我已经编辑了y答案以显示翻转的场景-隐藏所有div,然后显示最后两个div。
$('.showRooms > div:gt(-3)').hide(); // hide last 2 items