首页 > 解决方案 > 在引导程序中隐藏/显示卡片

问题描述

我试图在引导程序中隐藏和显示几张卡片,但我无法弄清楚。所有卡片都有类卡片(当然),我试图在单击按钮时隐藏所有这些卡片。这是我现在拥有的:

function myFunction() {

  jQuery(document).ready(function($) {
    $(".card").hide();
  });

  var game = document.getElementById("game").value;
  var resolution = document.getElementById("resolution").value;
  var graphic = document.getElementById("graphic").value;

  if (game == "Black" && graphic == "high" && resolution == "1080") {
    alert("Hello " + game + "! You will now be redirected to www.w3Schools.com");
  } else if (book == "Red") {

  } else if (book == "Green") {

  } else {

  }
}

该函数的调用是正确的,因为警报确实可以正常工作。

由于某种原因

jQuery(document).ready(function($) {
        $(".card").hide();
      });

部分在 js 函数之外(当它未连接到按钮时)确实有效。

不知道它是否有帮助,但这里也是我的引导文档的片段:

<button type="submit" class="btn btn-primary" id="btn" onclick="myFunction()">Submit</button>
          </form>
        </div>
        <!-- Results -->
        <div class="card" id="p2" style="width:200px; margin:30px">
          <img class="card-img-top" src="https://image" alt="Card image" style="width:100%">
          <div class="card-body">
            <h5 class="card-title">Processor</h5>
            <p><a href="#">Newegg</a></p>
            <p><a href="#">Newegg</a></p>
            <p><a href="#">Newegg</a></p>
          </div>
        </div>
        <div class="card" id="p3" style="width:200px; margin:30px">
          <img class="card-img-top" src="https://image" alt="Card image" style="width:100%">
          <div class="card-body">
            <h5 class="card-title">Graphic card</h5>
            <p><a href="#">Newegg</a></p>
            <p><a href="#">Newegg</a></p>
            <p><a href="#">Newegg</a></p>
          </div>
        </div>

这是我已经尝试过的事情:

切换如何通过 css 将鼠标悬停在导航菜单上来隐藏和显示 bootstrap 4 卡?

标准 js document.getElementById(".card").style.display = "none";

我看过反应的东西,但我不明白。

标签: javascriptbootstrap-4show-hide

解决方案


我认为如果您想对 DOM 中具有卡片类的所有元素进行显示和隐藏切换,您必须这样做。

var myFunction = function() {

 var divsToHide = document.getElementsByClassName("card"); 
if(divsToHide.length>0){
        for(var i = 0; i < divsToHide.length; i++){

      if( divsToHide[i].style.display== "none"){
    divsToHide[i].style.display = "block";
      }else{

           divsToHide[i].style.display = "none"; // depending on what you're doing
      }    
}} }

希望对你有帮助


推荐阅读