从具有相同类的元素集中选择随机ID [重复]

Posted

技术标签:

【中文标题】从具有相同类的元素集中选择随机ID [重复]【英文标题】:select random id from set of elements with the same class [duplicate] 【发布时间】:2017-05-17 16:01:16 【问题描述】:

我在一个页面上有一组元素,它们都具有相同的类,但都有不同的 id。我正在寻找一个随机元素并获取它的 id,以便它可以在另一个函数中使用。

<div id="7469" class="element"> ... </div>
<div id="0184" class="element"> ... </div>
<div id="3986" class="element"> ... </div>
<div id="1295" class="element"> ... </div>
<div id="5704" class="element"> ... </div>
and so on...

【问题讨论】:

如果您使用$('.element') 选择,您可以从结果对象的0 到length 之间选择一个随机数,并按索引选择一个特定元素。 【参考方案1】:

随机生成索引,根据索引获取元素。为此使用 Math.random 和 jQuery eq() 方法。

var $ele = $('.element');

console.log($ele.eq(Math.floor(Math.random()*($ele.length - 1))).attr('id'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="7469" class="element">...</div>
<div id="0184" class="element">...</div>
<div id="3986" class="element">...</div>
<div id="1295" class="element">...</div>
<div id="5704" class="element">...</div>

【讨论】:

【参考方案2】:

首先收集 element 类的所有 div。

var elements = $(".element");

然后

var randomelement = elements[Math.floor(Math.random() * elements.length)];
var randomid = $(elements[randomelement].attr("id"))
console.log(randomid)

看到这个SO question

【讨论】:

以上是关于从具有相同类的元素集中选择随机ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查是不是存在具有相同类的多个元素[重复]

从使用 jQuery 的代码中指定的元素中选择具有给定类的下一个元素

如何从 Erlang/Elixir 中的 ets 集中选择一个随机元素?

具有相同类的元素 id 数组

选择具有相同类的所有元素,其中一些具有两个类

如何选择具有 2 个类的元素 [重复]