【问题标题】:Toggle Visibility of my Divs in JavaScript在 JavaScript 中切换我的 Div 的可见性
【发布时间】:2017-03-15 00:14:43
【问题描述】:

我编写了一个按钮和一些我认为可以与该按钮一起使用的 JavaScript,但它目前无法正常工作。

我正在寻求一些帮助来纠正我的代码:

Button:
    <label class="switch">
      <input type="checkbox" class="whichStore"></input>
      <div class="slider round"></div>
    </label>

Divs that I want to swap the prices on when the button is clicked:
    <div class="row">
      <div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
        <p>Item:</p>
      </div>
      <div class="col-lg-7 col-md-7 col-sm-6 col-xs-6">
        <p>Item Placeholder</p>
      </div>
      <div class="col-lg-2 col-md-2 col-sm-2 col-xs-2" class="priceA">
        <p><span class="money">$</span>9.99</p>
      </div>
      <div class="col-lg-2 col-md-2 col-sm-2 col-xs-2" class="priceB" style="display: none">
        <p><span class="money">$</span>8.87</p>
      </div>
      <div class="col-lg-1 col-md-1 col-sm-2 col-xs-2"></div>
    </div>

My script:
    <script>
            document.getElementsByClassName("whichStore").onchange = function() {
              var priceA = document.getElementsByClassName("salaryA");
              var priceB = document.getElementsByClassName("salaryB");
              if (priceA.style.display == "none") {
                document.getElementsByClassName("priceA").style.display = "";
                document.getElementsByClassNames("priceB").style.display = "none";
              } else if (priceB.style.display == "none") {
                document.getElementsByClassName("priceA").style.display = "none";
                document.getElementsByClassName("priceB").style.display = "";
              }
            }
    </script>

我的 div 在模态中,所以当我单击一个单词时,模态会弹出,其中包含表格。 表格的每一行都有一个项目类别,然后是项目名称,例如Toiletries: Toilet Paper,然后是任何商店的价格。因此,如果沃尔玛的价格是每卷 0.99 美元,而塔吉特的价格是 0.75 美元

显示模式时,它将以沃尔玛的价格开始(无论可能是什么),然后如果我单击按钮,它会将价格更改为 Target 的价格,隐藏沃尔玛的价格。然后,如果我再次单击该按钮,它会切换回沃尔玛的价格。

【问题讨论】:

  • 你的问题不清楚。如果你把你的 html 和 javascript 放在 jsfiddle 中,它会很容易帮助你。
  • @CleverAlmeida 我有一个我的行 div 所在的模式。所以它显示一个项目类别,然后显示项目是什么......让我们说洗漱用品:卫生纸。在沃尔玛(据说)卫生纸每卷 0.99 美元。当我单击按钮时,我希望显示 Target 的价格(每卷 0.75 美元),然后当我单击按钮时,另一个 div 应该切换回沃尔玛价格。所以本质上,当按钮被切换时,价格 div 应该显示一个并隐藏另一个

标签: javascript html css


【解决方案1】:

您可以为此使用 jQuery toggle() 方法。 将此添加到您的 html 的头部,以便能够在线使用 jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

然后使用单独的脚本使按钮工作。 &lt;div id="test"&gt;: 是这样的

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("#test").toggle();
    });
});
</script>

下面有一个例子。

http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_eff_toggle

【讨论】:

  • 我可以将它与类一起使用吗,而不是放置按钮的位置:“.whichStore”?编辑:刚刚在您的链接上进行了测试,我认为它有效,请在我的代码中尝试,谢谢!
  • 但这不会隐藏一个 div 并显示另一个,并将它们交换掉。这只是隐藏了 1 个 div...
  • 是的,您可以通过将“#”替换为“.”来使用类。然后是类名。
  • 所以我现在将两个段落标签(priceA 和 priceB)放在同一个 div 中。但是我从隐藏的 B 开始。因此,当我切换按钮时,我希望 B 显示而 A 隐藏。这只是隐藏了 A。如果我切换回来,我该如何显示 B,然后反之亦然。我去看看 .show() 是不是一个命令
  • 已修复,我只是从隐藏 B 开始,然后切换两者。谢谢你的帮助,我想我明白了!这比我做的要容易得多-.-
猜你喜欢
  • 2013-07-12
  • 2013-08-05
  • 2015-12-26
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多