我有这些div,每个都有相同的班级.onediv
和不同的ID div1, div2, div3
<div class="alldivs">
<div class="onediv" id="div1">
</div>
<div class="onediv" id="div2">
</div>
<div class="onediv" id="div3">
</div>
</div>
我想使用jquery更改其css display
属性,以便所有属性display none
除id=div2
display block
之外的$('.onediv').css('display', 'none');
$('#div2').css('display', 'block');
。现在我用2行这样做。是否有更快的方法只用一行做同样的事情?
{{1}}
答案 0 :(得分:5)
如果您在兄弟姐妹中隐藏/展示,那么最通用(且仍然高效)的解决方案是使用.siblings()
,如下所示:
$("#div2").show().siblings().hide();
请注意,.show()
和.hide()
是用于设置display
CSS属性的快捷方式(在none
之间,之前为block
}在默认的<div>
情况下。)
答案 1 :(得分:2)
$('.onediv:not(#div2)').css('display', 'none');
答案 2 :(得分:2)
可以使用filter
功能,但不建议出于性能原因:
$('.onediv').hide().filter('#div2').show();
答案 3 :(得分:0)
$('#div2')。siblings()。css('display','none');
答案 4 :(得分:0)
这是一个有创意的(但不一定有用):
$(".alldivs > div:even").hide();
这是另一个:
$(".onediv:not(:eq(1))").hide();
此代码预计默认情况下您的div不会被隐藏(即.css中没有显示:无)
答案 5 :(得分:0)
试试这个:
$('.onediv').not('.onediv:last-child').css('display', 'none');
请不要贬低!这很有效。点击此处:http://jsfiddle.net/ASBcg/
编辑: 如果你想明确地表明div会更好:
$('.onediv').css('display', 'block').not('.onediv:last-child').css('display', 'none');