我有一个HTML,如下所示
<div class="inner-accordion">
<div id="activeui4" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="4">
<section id="topping_tsection_4">
</section>
</div>
</div>
<div id="activeui5" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="5">
<section id="topping_tsection_5">
</section>
</div>
</div>
<div id="activeui6" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="6"></div>
</div>
</div>
点击一个按钮,我正在调用一个函数,我将传递id。
function showToppers(id)
{
var id =4 ;
$('#activeui'+id+'.activateUiHTML').find(".Topping-details").toggle();
}
我的要求是如何隐藏/阻止所有其他类Topping-details除了在这种情况下的for id 4?
答案 0 :(得分:8)
尝试此操作:使用.not()
使用id=4
$('.Topping-details').not('#4').hide();
答案 1 :(得分:2)
只需隐藏所有这些,然后显示您想要的那个:
function showToppers(id){
$(".Topping-details").hide();//hide all of them
$('#activeui'+id+'.activateUiHTML').find(".Topping-details").show();//show the one you want
}
更新版本,以解决OP关于如何关闭开放版本的评论。
function showToppers(id){
$(".Topping-details").not("#"+id).hide();//hide all of them but the target one
var $theoneiwant = $('#activeui'+id+'.activateUiHTML').find(".Topping-details");//store the target in a variable for efficiency
if($theoneiwant.is(":visible")){//if it is open,
$theoneiwant.hide();//close it
} else {//its closed
$theoneiwant.show();//open it
}
}
答案 2 :(得分:1)
使用jQuery:not()
选择器
$('#activeui'+id+'.activateUiHTML').find(".Topping-details:not('#4')").hide();
答案 3 :(得分:1)
DEMO 2 ...使用jQuery.toggleClick插件切换n
次点击。
我建议使用非数字ID,而不是在函数中对id进行硬编码,您可以使用data
属性来保存button
中的目标ID。
<强> HTML 强>
<button class="hider" data-hide-id="i4">Just i4</button>
<button class="hider" data-hide-id="i5">Just i5</button>
<button class="hider" data-hide-id="i6">Just i6</button>
<div class="inner-accordion">
<div id="activeui4" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="i4">
<section id="topping_tsection_4">
</section>
</div>
</div>
<div id="activeui5" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="i5">
<section id="topping_tsection_5">
</section>
</div>
</div>
<div id="activeui6" class="activateUiHTML" data-role="collapsible">
<div style="display: block;" class="Topping-details" id="i6"></div>
</div>
</div>
<强> JS 强>
$(function() {
$('.hider').on('click',function() {
var id = $(this).data('hide-id');
$('.Topping-details').show().not('#' + id).hide();
});
});
答案 4 :(得分:0)
$(".activateUiHTML").removeClass("active");
$("#activeui" + id).addClass("active");
活跃的课程将有
.activateUiHTML.active{
display: block;
}
通常它有
.activateUiHTML{
display:none;
}
使用CSS做得更清晰,在较旧/较慢的设备上效果更好
答案 5 :(得分:0)
function hideSection(idToHide){
$(".Topping-details").each(function(){
if(this.id == idToHide) {
$(this).show();
}else{
$(this).hide();
}
});
});
}
点击按钮调用此功能..