Javascript 隐藏div中的最后两项
我有以下代码,其中我想隐藏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*/){
$('.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