Javascript 如何隐藏除第一个div之外的所有div?

Javascript 如何隐藏除第一个div之外的所有div?,javascript,jquery,html,Javascript,Jquery,Html,我正在使用JQuery,我想隐藏除第一个div之外的所有div,但问题是我通过for循环显示我的div(ref_display),如下所示: <div class="col-md-6 ref"> {% for benefit in benefits %} <div class="col-md-6 ref_display"> <h3>{{ benefit.name }}</h3> <p>{

我正在使用JQuery,我想隐藏除第一个div之外的所有div,但问题是我通过for循环显示我的div(ref_display),如下所示:

<div class="col-md-6 ref">
    {% for benefit in benefits %}

    <div class="col-md-6 ref_display">
        <h3>{{ benefit.name }}</h3>
        <p>{{ benefit.description }}</p>
        <div></div>
    </div>

    {% endfor %}
</div>
我认为JQuery在编写
.gt(0)
时认为只有一个div,但是我的页面上显示了很多div

我是JS的初学者,所以可能有一个解决方案我不知道:)

提前谢谢你

Try
var ref=$('div.ref_display:gt(0)').hide()

$(函数(){
$('div.ref_display:gt(0)').hide();
});

第一组
第二组
第三组
我想隐藏除第一个以外的所有div

使用
:不(:第一个孩子)

或者使用
slice

$("'div.ref_display").slice(1).hide();
您可以使用
not()
作为

var ref = $('div.ref_display').not(':first').hide();

这将忽略div具有class
ref\u display

的第一个元素,只使用css
伪选择器
而不是
&
第一个子项

.ref.ref\u显示:非(:第一个子项){
显示:无;
}

1.
一,

X 2. 二,

Y 3. 三,

Z
问题在于
gt(0)
不是一个函数。可能您的意思是
get(0)
,但即使这样也有问题,因为它将返回一个没有
hide()方法的DOM元素

要实现所需功能,可以使用
:gt
选择器获取除第一个div之外的所有div并隐藏它们:

$('div.ref_display:gt(0)').hide();
也就是说,您根本不需要JS/jQuery,因为它可以在CSS中单独实现:

div.ref{display:none;}
div.ref:第一个子项{display:block;}
1
2.

3
看起来你根本就不喜欢这个。简单的CSS应该足够了
。ref\u display+。ref\u display

我想隐藏除第一个以外的所有div

当然,jQuery也会起作用:

$('.ref_display+.ref_display').hide()

#1
#2

#3
您只需使用CSS即可解决此问题<代码>:not(:first child)
将选择除第一个子元素以外的所有子元素

div:not(:第一个子项){display:none;}
1
2.

3
这是最好的答案。正确的解释和更简单的解决方案。+1是的,谢谢!!我知道,但我不知道为什么要使用gt()作为函数。。。。有时候我很笨:')@Beno没问题,很乐意帮忙,不过我知道css,但之后我不得不使用JQuery来处理其他事情;)您还可以使用
.first()
,例如
ref.hide();ref.first().show()谢谢,我知道这一点,但我必须使用JQuery,因为在那之后我必须做其他事情:)
var ref = $('div.ref_display').not(':first').hide();
$('div.ref_display:gt(0)').hide();