javascript - 使用 jQuery 显示没有特定类的随机 div

标签 javascript jquery html css

我有一个动态列表,我将它显示在 div 中,如下所示

<div class="cards card1">       
  <div class="front">
    <p>Front 1</p>
  </div>
  <div class="back1" style="display: none">
    <p>Back 1</p>
  </div>
</div>

<div class="cards card2" style="display: none">     
  <div class="front">
    <p>Front 2</p>
  </div>
  <div class="back2" style="display: none">
    <p>Back 2</p>
  </div>
</div>

<div class="cards card3" style="display: none">     
  <div class="front">
    <p>Front 3</p>
  </div>
  <div class="back3" style="display: none">
    <p>Back 3</p>
  </div>
</div>

现在,当页面加载时,它只显示第一个主 div (card1)。我有一个名为“显示”的按钮。当我点击它时,它使用 jQuery 显示第一个主 div 的第二个 subdiv (back1)。它还向名为“visited”的主 div(card1) 添加了一个类。

还有一个名为“下一步”的按钮。现在我要做的是,当我单击“下一步”按钮时,我想随机播放剩余的 div(card2、card3)并随机显示这两个 div 中的 div。在洗牌期间,它应该只洗牌没有那个“访问过”类的 div。

假设我点击了第一个 div 的显示按钮。 'visited' 类将添加到该 div (card1)。现在剩下两个 div 没有类“已访问”。因此,当我单击“下一步”按钮时,它应该只显示 card2 或 card3 div 而不是 card1,因为 card1 包含“已访问”类。

之后假设 card3 div 出现,我再次单击“下一步”按钮。然后它应该向我显示 card3 div,因为它是唯一不包含“已访问”类的 div。

我有很多这种类型的 div。请记住卡片应该被洗牌(随机)。

请帮我解决这个问题。

最佳答案

JQuery 有一个not() 选择器来过滤现有的查询。然后你可以使用来自this answer的方法选择一个随机元素。放在一起:

let unvisited = $('.cards').not('.visited');
let next_card = unvisited.eq(Math.floor(Math.random(unvisited.length)));
next_card.show();

关于javascript - 使用 jQuery 显示没有特定类的随机 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57777400/

相关文章:

javascript - Angular = 获取无效的数组长度

javascript - 在Firefox附加SDK扩展程序中使用chrome://myAddon/content/URL

Javascript 日期字符串格式

jquery - 在 jquery 中指向元素

html - 为什么可以使用GET方法来提交表单数据?

javascript - 模式隐藏时滚动条未恢复

javascript - 使用 css 或 javascript 根据用户操作更改 html 页面上的图标

javascript - jQuery .hide() 和 .css 之间的区别 ("display", "none")

javascript - 在悬停时滑入隐藏元素

javascript - 如何根据网络中的单个字段进行多重搜索