如何使用按钮在 html using JavaScript 中的元素之间循环

How to cycle between elements in html using JavaScript using buttons

我的问题是我试图使用按钮在 HTML 个元素之间循环。我想在按下关联按钮时显示一个元素并隐藏其他元素。

我当前的代码使用 jquery 的显示和隐藏,我不确定这些是否最适合我正在尝试做的事情。我最终将使用大约 14 个按钮和 14 个不同的 div 元素。数组可能更适合我正在尝试做的事情。

此代码不会在按下按钮时显示或隐藏任何内容。我希望代码显示与每个按钮关联的元素并隐藏所有其他元素。

$(function() {
  $('div1Button').click(function() {
    $('#div1').show();
    $('#div2').hide();
    $('#div3').hide();
  });
  $('div2Button').click(function() {
    $('#div1').hide();
    $('#div2').hide();
    $('#div3').hide();
  });
  $('div3Button').click(function() {
    $('#div1').hide();
    $('#div2').hide();
    $('#div3').show();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="div1Button">Div1</button>
<button id="div2Button">Div2</button>
<button id="div3Button">Div3</button>

<div id="div1">
  Hello Im div1
</div>

<div id="div2">
  Hello Im div2
</div>

<div id="div3">
  Hello Im div3
</div>

您在选择按钮时忘记添加 #

$(function() {
  $('#div1Button').click(function() {
    $('#div1').show();
    $('#div2').hide();
    $('#div3').hide();
  });
  $('#div2Button').click(function() {
    $('#div1').hide();
    $('#div2').hide();
    $('#div3').hide();
  });
  $('#div3Button').click(function() {
    $('#div1').hide();
    $('#div2').hide();
    $('#div3').show();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="div1Button">Div1</button>
<button id="div2Button">Div2</button>
<button id="div3Button">Div3</button>

<div id="div1">
  Hello Im div1
</div>

<div id="div2">
  Hello Im div2
</div>

<div id="div3">
  Hello Im div3
</div>

你应该给你显示的 div 一个 css class,然后每隔一个隐藏(或给一个 "hidden" class)div 没有 class.

它将使您的代码可扩展并减少冗余。

您应该使用 class 作为您的按钮和您的 div 而不是 id,然后使用数据属性来定位点击按钮时 div 将显示的目标。

示例:

$(".toggleButton").on("click", function() {
  var target = $(this).data("target");
  $(".toggleDiv").hide();  // Hide all div
  $(target).show();  // Show the target div
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="toggleButton" data-target="#div1">Div1</button>
<button class="toggleButton" data-target="#div2">Div2</button>
<button class="toggleButton" data-target="#div3">Div3</button>

<div class="toggleDiv" id="div1">
  Hello Im div1
</div>

<div class="toggleDiv" id="div2">
  Hello Im div2
</div>

<div class="toggleDiv" id="div3">
  Hello Im div3
</div>