首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按id显示3个随机元素,不使用JQuery重复。如何确保它总是返回3?然后单击相同的按钮来重做该功能?

要实现按id显示3个随机元素且确保总是返回3个元素,可以按照以下步骤进行:

  1. 获取所有元素的id列表。
  2. 生成一个随机数数组,长度为3,且每个随机数都在id列表的范围内。
  3. 根据随机数数组,获取对应的3个元素。
  4. 显示这3个元素。

以下是一个示例的JavaScript代码实现:

代码语言:javascript
复制
// 获取所有元素的id列表
var idList = Array.from(document.querySelectorAll('.element')).map(function(element) {
  return element.id;
});

// 生成一个随机数数组,长度为3,且每个随机数都在id列表的范围内
var randomIndices = [];
while (randomIndices.length < 3) {
  var randomIndex = Math.floor(Math.random() * idList.length);
  if (!randomIndices.includes(randomIndex)) {
    randomIndices.push(randomIndex);
  }
}

// 根据随机数数组,获取对应的3个元素
var randomElements = randomIndices.map(function(index) {
  return document.getElementById(idList[index]);
});

// 显示这3个元素
randomElements.forEach(function(element) {
  element.style.display = 'block';
});

为了实现单击相同的按钮来重做该功能,可以将上述代码封装成一个函数,并在按钮的点击事件中调用该函数。每次点击按钮时,都会重新生成随机数数组并显示对应的3个元素。

代码语言:javascript
复制
// 封装成函数
function showRandomElements() {
  // 上述代码
}

// 按钮的点击事件
document.getElementById('button').addEventListener('click', function() {
  // 隐藏之前显示的元素
  document.querySelectorAll('.element').forEach(function(element) {
    element.style.display = 'none';
  });

  // 调用函数显示新的随机元素
  showRandomElements();
});

这样,每次点击按钮时,都会重新生成随机数数组并显示对应的3个元素,实现了重做该功能的效果。

请注意,以上代码中的.element是一个类选择器,需要根据实际情况替换为正确的元素选择器。另外,该代码只是一个示例,具体实现可能需要根据具体的页面结构和需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Jump Start Bootstrap 第4章

    我们将会看到如何添加下拉菜单到导航栏、切换按钮的状态、当点击按钮时漂亮的警告信息会在显示一段时间后消失等等功能。...当你点击按钮时,你会看到一个类似于插图效果的样式;在再次单击时,它返回到原来的样式,如图所示。data-toggle=”button”实现了这个切换功能。 ?...该插件在任何DOM元素中侦听滚动,并根据元素的滚动位置在导航栏中突出显示菜单项。 基本上,它是一个双组件的插件;它由一个导航条和一个内容区域组成。内容区域划分为多个部分,每个部分都有一个惟一的ID。...可以使用任何一个HTML标题标签插入标题:,,3 >,等等。对于相关文本,可以使用标记。 对每张幻灯片重复相同的项目标记。...元素,可以作为一个modal handle元素,可以包含一个包含链接的属性href。Bootstrap模式对话框有一个选项,当单击该句柄时,将该链接加载到它的modal-body元素中。

    28.4K40

    Figma也可以用时间轴做超级流畅的动画了

    搜索到后,只需点击安装按钮即可。 接下来我们添加一个新的Figma文件,从下拉菜单中选择Plugins / Motion。会打开如下的面板。 ? ? 002. 如何使用? 接下我们看看如何使用它。...将矩形放置在靠近Frame左角的位置,以便在右侧留出一些空间来移动它。 ? 现在转到Motion,然后单击X属性上的“添加关键帧”按钮。 ? 我们的动画将持续500毫秒。...选择关键帧,按Ctrl / Cmd + C或从所选关键帧的下拉菜单中单击“复制”。之后,您可以将它们粘贴到任何层上。有时,以相同的方式为某些图层设置动画非常有用。...让我们复制第二个矩形,旋转它,从上一个复制关键帧,然后将其粘贴到新的矩形中。之后,对最后一个矩形重复相同的步骤。此时,一个完整的动画就制作完成了。 ? 5.2 弹跳球 现在我们来做一个弹跳球的动画。...转到“Motion”,然后在0ms和500ms时间位置上为Y和Height添加两个关键帧。 ? 选择结束的Y关键帧并将其值更改为275,对“高度”重复相同的操作,将其值设置为50。单击“播放”。 ?

    20.3K45

    JQuery最全常用方法指南

    (array, callback) 使用某个方法修改一个数组中的项,然后返回一个新的数组 jQuery.inArray(value, array) 返回value在数组中的位置,如果没有找到,则返回...- 1 jQuery.unique(array) 删除数组中的所有重复元素,返回整理后的数组 1、关于页面元素的引用 通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及....innerHTML; 3、如何获取jQuery集合的某一项 对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而...(fn); //为id为msg的元素单击事件添加函数 同样blur, focus, select, submit事件都可以有着两种调用方法 5、集合处理功能 对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理...使用jquery中的jQuery.noConflict(); 方法即可把变量$的控制权让渡给第一个实现它的那个库或之前自定义的$方法。

    11K31

    学习jQuery这一篇就够了

    它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作事件处理动画和 Ajax 操作更加简单。...,jQuery 定义了这个全局的函数供我们调用,它既可作为一般函数调用,且传递的参数类型不同 / 格式不同,功能就完全不同,也可作为对象调用其定义好的方法,此时 就是一个工具对象。...jQuery 核心对象:即执行 jQuery 核心函数返回的对象,jQuery 对象内部包含的是 dom 元素对象的伪数组 (可能只有一个元素),jQuery 对象拥有很多有用的属性和方法,让程序员能方便的操作...需求描述:为按钮绑定一个单击函数,然后点击按钮,在控制台输出 “按钮被单击了” 按钮 $('button').click(function () { console.log...对象 给 jQuery 对象 添加 3 个功能方法: checkAll() : 全选 unCheckAll() : 全不选 reverseCheck() : 全反选 如何实现呢?

    1K50

    设计师都能懂的 Redux 指南

    注意:在React(16.3)的最新版本中,有一个新的 context API,它的提取数据功能几乎与 Redux 是相同的。...更改数据的代码必须像数学公式一样。 在相同输入的情况下,它必须返回相同的结果。 无论你运行多少次,4 的平方总是 16。 当你遵循上述原则来开发应用的话,不可思议的事情就来了。...这个文档中介绍了如何使用 Redux 来实现撤消/重做。 协作环境 如果你要构建类似于 Google Docs 的应用,其中多个用户在复杂任务上协同工作,请考虑使用 Redux。...错误报告可能是模糊的或不准确的。开发人员很难找到 bug 所在的位置。 现在,这个怎么样。 用户单击“报告错误”按钮。 系统自动将她所做的事情发送给开发人员。...开发人员单击“重播错误”按钮并观察错误是如何发生的。 bug 被当场压扁,每个人都很开心! Redux Bug Reporter 就是这样玩的。它的工作原理呢?Redux 的限制条件让一切变成可能。

    1.7K10

    一个小时学会jQuery

    该对象拥有大量预定义的有用方法,能够作用于该组元素。 用编程的话来说,这种构造称为包装器(wrapper),因为它用扩展功能来对匹配的元素进行包装。...基本选择器 基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名等来查找DOM元素。在网页中,每个id名称只能使用一次,class允许重复使用。...3.2.1、通过id获取元素 在CSS中经常使用id来控制元素,在jQuery中获取元素时,也使用同样方法。与CSS一样,在id前面加上#号。...语法:$("#id") 可以控制指定id的HTML元素,在HTML中有id不可重复的规定,因此可以控制文档内部惟一的元素。如果定义了多个同名的id元素,则只有最初出现的同名id有效。...语法:$(".className") 本例通过类名来获取元素,因为使用同一个类样式的元素可能有多个,所以通过类名来获取元素返回的将是一个数组对象,即jQuery中的包装集,然后对此包装集中的元素进行相关操作

    18.6K71

    JQuery的学习

    它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。...因此一般项目来说,使用1.x版本就可以了, 最终版本:1.12.4 (2016年5月20日) 2.x:不兼容ie678,很少有人使用,官方只做BUG维护, 功能不再新增...如果不考虑兼容低版本的浏览器可以使用2.x, 最终版本:2.2.4 (2016年5月20日) 3.x:不兼容ie678,只支持最新的浏览器。...除非特殊要求, 一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。 目前该版本是官方主要更新维护的版本。...当页面加载完,3秒后。自动显示广告 2. 广告显示5秒后,自动消失。 分析: 1. 使用定时器来完成。

    16.6K20

    4 个 useState Hook 示例

    今天,可以使用 Hook 获得相同的功能,并为自己节省了工作时间。在本文中,主要介绍useState hook。...示例:使用 useState 显示/隐藏组件 这个示例是一个组件,它显示一些文本,并在末尾显示一个read more链接,当单击链接时,它展开剩下的文本。...假设你的 hooks 总是以相同的顺序调用(如果遵循 hooks 的规则,它们将是相同的顺序),React能够查找特定useState调用的前一个值。...下面是一个随机数列表的例子,单击按钮将向列表添加一个新的随机数: function RandomList() { const [items, setItems] = useState([]);...它使用setValues传递一个对象,为了确保现有的状态不被覆盖,这里使用了展开运算(...form)。

    98420

    第79天:jQuery事件总结(二)

    每次单击元素,依次触发指定的相应的函数,直到最后一个。随后的每次单击都重复对这几个函数的轮番调用。   ...上篇有过下面的一个例子,在其中如果要连续单击“标题”链接,实现“内容”隐藏和显示的效果,那么按照之前的做法就需要在绑定“click”事件的时候判断当前的“内容”部分是隐藏还是显示,然后进行相反的操作,显然就麻烦的多...以一个按钮为例:假设网页中有一个id为btn的按钮,其上绑定了几个click事件。...那么:   首先添加一个移除事件的按钮: id="delAll">移除所有事件 然后可以为该按钮绑定若干的click事件,使用链式操作就可以很简单的为其绑定几个click...jQuery代码如下: $("#delAll").click(function(){ $('#btn').unbind("click"); }) 因为元素绑定的都是click事件,所以上面不写“click

    1.6K20

    jQuery:详解jQuery中的事件(二)

    每次单击元素,依次触发指定的相应的函数,直到最后一个。随后的每次单击都重复对这几个函数的轮番调用。   ...上篇有过下面的一个例子,在其中如果要连续单击“标题”链接,实现“内容”隐藏和显示的效果,那么按照之前的做法就需要在绑定“click”事件的时候判断当前的“内容”部分是隐藏还是显示,然后进行相反的操作,显然就麻烦的多...方法来阻止元素的默认行为。   ...所以,移除事件就涉及两种情况下的移出,一种是移除之前注册的所有事件,而是移除其中的一个事件。以一个按钮为例:假设网页中有一个id为btn的按钮,其上绑定了几个click事件。...那么:   首先添加一个移除事件的按钮: id="delAll">移除所有事件   然后可以为该按钮绑定若干的click事件,使用链式操作就可以很简单的为其绑定几个click

    2.2K30

    最新iOS设计规范六|10大交互规范(User Interaction)

    显示操作(如点按按钮)可确保用户进行身份验证。例如:在Face ID的情况下,用户可能需要面向相机。 明确描述身份验证方法。...用户熟悉标准手势,并不希望总是被迫学习不同的手势来完成相同的操作。在游戏以及其他沉浸式APP中,自定义手势可以成为用户体验中有趣的一部分。...许多系统APP的导航栏中,都包含一个清晰且可点击的返回按钮。但是用户也可以通过从屏幕侧面滑动来返回上一页。在iPad上,用户还可以通过按Home键或使用四指捏手势退出主屏幕。...旋转(Rotate):旋转图像或视图 摇晃(Shake):撤销或重做 六、3D 触控(3D Touch ) 3D触摸可以说是为触摸交互方式提供了另一个维度的交互,在支持3D触摸的设备上,用户可以通过对屏幕施加不同程度的压力来唤醒不同的功能...谨慎提供撤消和重做按钮。当APP提供多种方法来执行相同的任务时,这会令人困惑。如果你的APP确实需要专门的撤消和重做按钮,请使用系统提供的图标并将它们放在预期的位置,例如导航栏。

    4.3K30

    从设计的角度看 Redux

    注意:在React(16.3)的最新版本中,有一个新的 context API,它的提取数据功能几乎与 Redux 是相同的。...更改数据的代码必须像数学公式一样。 在相同输入的情况下,它必须返回相同的结果。 无论你运行多少次,4 的平方总是 16。 当你遵循上述原则来开发应用的话,不可思议的事情就来了。...这个文档中介绍了如何使用 Redux 来实现撤消/重做。 协作环境 如果你要构建类似于 Google Docs 的应用,其中多个用户在复杂任务上协同工作,请考虑使用 Redux。...错误报告可能是模糊的或不准确的。开发人员很难找到 bug 所在的位置。 现在,这个怎么样。 用户单击“报告错误”按钮。 系统自动将她所做的事情发送给开发人员。...开发人员单击“重播错误”按钮并观察错误是如何发生的。 bug 被当场压扁,每个人都很开心! Redux Bug Reporter 就是这样玩的。它的工作原理呢?Redux 的限制条件让一切变成可能。

    1.7K30

    使用iPad将iPad用作Mac的第二台显示器

    使用Sidecar的Macbook旁的iPad 使用Sidecar扩展或镜像Mac桌面 确保您的Mac和iPad满足Sidecar系统要求,然后执行以下步骤: 您可以无线使用Sidecar,但要在使用过程中为...要镜像Mac显示,使两个屏幕显示相同的内容,请返回AirPlay菜单,该菜单是 ? image 使用Sidecar时的蓝色矩形 。选择用于镜像显示的选项。...这是与他人共享Mac屏幕的好方法。 要结束Sidecar会话,请返回AirPlay菜单,然后选择断开连接的选项。或单击iPad 边栏中的断开连接按钮。 了解有关使用外接显示器的更多信息。...---- 使用iPad应用 使用Sidecar时,您可以 切换到iPad应用程序,然后像往常一样在iPad上与该应用程序进行交互。...代) iPad Air(第3代) 其他要求 您必须 在两个设备上使用相同的Apple ID登录到iCloud。

    13.6K00

    WEB入门之十四 jQuery事件

    ( [ [data] , fn ] ) 松开鼠标按钮时发生的事件 下面我们通过一些示例来演示jQuery中鼠标相关事件的用法,先看示例5.7,该示例演示了mousedown、mouseup和mousemove...是head的div元素设置hover事件,在该事件中通过两个匿名函数控制类名是content的div,第一个函数控制该div显示,第二个函数控制该div隐藏。...假设给所有的文本框通过bind绑定了鼠标单击事件,然后再动态创建一个文本框,此时绑定的鼠标单击事件对这个新创建的文本框无效;但是如果使用live进行绑定,那么新创建的文本框也会绑定鼠标单击事件。...,然后单击按钮时分析出用户的出生日期。...任务实训部分​ 1:实现简易计算器 ​训练技能点​ jQuery单击事件 ​需求说明​ 使用jQuery事件实现计算器功能。

    12910
    领券