使用Jquery显示/隐藏多个div

kse8i1jr  于 2023-04-11  发布在  jQuery
关注(0)|答案(9)|浏览(230)

我想使用一些按钮来显示/隐藏多个div使用jquery。
页面最初会显示所有div,然后会有一个按钮来重置(显示所有),然后单独的按钮来显示特定的div,同时隐藏其余的div。
任何帮助将不胜感激。

<div class="buttons">
<a class="button" id="showall">All</a>
<a class="button" id="showdiv1">Div 1</a>
<a class="button" id="showdiv2">Div 2</a>
<a class="button" id="showdiv3">Div 3</a>
<a class="button" id="showdiv4">Div 4</a>
</div>

<div id="div1">Lorum Ipsum</div>
<div id="div2">Lorum Ipsum</div>
<div id="div3">Lorum Ipsum</div>
<div id="div4">Lorum Ipsum</div>
bfrts1fy

bfrts1fy1#

jQuery(function() {
  jQuery('#showall').click(function() {
    jQuery('.targetDiv').show();
  });
  jQuery('.showSingle').click(function() {
    jQuery('.targetDiv').hide();
    jQuery('#div' + $(this).attr('target')).show();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="buttons">
  <a id="showall">All</a>
  <a class="showSingle" target="1">Div 1</a>
  <a class="showSingle" target="2">Div 2</a>
  <a class="showSingle" target="3">Div 3</a>
  <a class="showSingle" target="4">Div 4</a>
</div>

<div id="div1" class="targetDiv">Lorum Ipsum1</div>
<div id="div2" class="targetDiv">Lorum Ipsum2</div>
<div id="div3" class="targetDiv">Lorum Ipsum3</div>
<div id="div4" class="targetDiv">Lorum Ipsum4</div>

http://jsfiddle.net/XwN2L/

jtjikinw

jtjikinw2#

如果它们属于逻辑组,我可能会使用这里已经列出的类方法
许多人似乎忘记了,你实际上也可以在同一个jQuery选择器中通过id选择多个项目:

$("#div1, #div2, #div3").show();

其中'div1',' div2',和'div3'都是你想同时显示的不同div上的id属性。

slwdgvem

slwdgvem3#

为每个div分配一个class。然后您可以对所有div执行操作:

$(".divClass").hide();

每个按钮都可以:

$(".divClass").hide()
$("#specificDiv").show();

你可以让它更通用,并使用明显的约定-按钮和id中具有相同数字的div是相关的。所以:

$(".button").click(function() {
  var divId = "#div" + $(this).attr("id").replace("showdiv", "");
  $(".divClass").hide(); 
  $(divId).show();
}
omvjsjqw

omvjsjqw4#

只是一个小的旁注...如果你在其他脚本中使用这个,最后一行的$会导致冲突。只要用jQuery替换它就可以了。

jQuery(function(){
     jQuery('#showall').click(function(){
           jQuery('.targetDiv').show();
    });
    jQuery('.showSingle').click(function(){
          jQuery('.targetDiv').hide();
          jQuery('#div'+jQuery(this).attr('target')).show();
    });
});

http://jsfiddle.net/XwN2L/4764/

qpgpyjmq

qpgpyjmq5#

简单但愚蠢方法:

$('#showall').click(function(){
    $('div[id^=div]').show();
});

$('#showdiv1').click(function(){
    $('#div1').show();
    $('div[id^=div]').not('#div1').show();
});

至于更好的一个-添加公共类到所有div的,并使用一些属性在按钮与id的目标div的

vmdwslir

vmdwslir6#

如果你想用更少的代码来显示/隐藏单个div和/或div组,只需对它们应用几个类,以便在需要时将它们插入到组中。
示例:

.group1 {}
.group2 {}
.group3 {}

<div class="group3"></div>
<div class="group1 group2"></div>
<div class="group1 group3 group2"></div>

然后你只需要使用一个标识符来将动作链接到目标,通过5,6行jquery代码,你就拥有了你所需要的一切。

9vw9lbht

9vw9lbht7#

检查此Example

Html:

<div class="buttons">
<a class="button" id="showall">All</a>
<a class="button" id="showdiv1">Div 1</a>
<a class="button" id="showdiv2">Div 2</a>
<a class="button" id="showdiv3">Div 3</a>
<a class="button" id="showdiv4">Div 4</a>
</div>

<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
<div id="div4">4</div>

Javascript:

$('#showall').click(function(){
    $('div').show();
});

$('#showdiv1').click(function(){
    $('div[id^=div]').hide();
    $('#div1').show();
});
$('#showdiv2').click(function(){
    $('div[id^=div]').hide();
    $('#div2').show();
});

$('#showdiv3').click(function(){
    $('div[id^=div]').hide();
    $('#div3').show();
});

$('#showdiv4').click(function(){
    $('div[id^=div]').hide();
    $('#div4').show();

});
rur96b6h

rur96b6h8#

我也遇到了同样的问题,读了这篇文章,但最终构建了这个解决方案,通过使用JQuery的attr()函数从href上的自定义类中获取ID来动态选择div。
下面是jQuery:

$('a.custom_class').click(function(e) {
  var div = $(this).attr('href');
  $(div).toggle('fast');
  e.preventDefault();
}

你只需要在HTML中创建一个这样的链接:

<a href="#" class="#1">Link Text</a>
<div id="1">Div Content</div>
wr98u20j

wr98u20j9#

链接上的target属性刚刚在新窗口中打开,所以我将接受的答案修改为下面的答案:

jQuery(document).ready(function($) {
  $(function() {
    $('#showall').click(function() {
      $('.targetDiv').show();
    });
    $('.showSingle').click(function() {
      $('.targetDiv').hide();
      $('#div-' + $(this).attr('id')).show();
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="buttons">
  <a class="button" id="showall">All</a>
  <a class="button showSingle" id="showdiv1">Div 1</a>
  <a class="button showSingle" id="showdiv2">Div 2</a>
  <a class="button showSingle" id="showdiv3">Div 3</a>
  <a class="button showSingle" id="showdiv4">Div 4</a>
</div>

<div id="div-showdiv1" class="targetDiv">Lorum Ipsum 1</div>
<div id="div-showdiv2" class="targetDiv">Lorum Ipsum 2</div>
<div id="div-showdiv3" class="targetDiv">Lorum Ipsum 3</div>
<div id="div-showdiv4" class="targetDiv">Lorum Ipsum 4</div>

相关问题