Javascript 如何隐藏除第一个div之外的所有div?
我正在使用JQuery,我想隐藏除第一个div之外的所有div,但问题是我通过for循环显示我的div(ref_display),如下所示: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>{
<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的初学者,所以可能有一个解决方案我不知道:)
提前谢谢你 Tryvar 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具有classref\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();