jquery - 为具有相同类别的 div 随机添加类别

标签 jquery css class random shuffle

我有几个相同类别的 div。我想为每个 div 随机添加一个(不同的)类,但不要在彼此之后重复添加的类。

这是我的示例 html:

<div class="sometext"> some text here </div>
<div class="sometext"> some other text here </div>
<div class="sometext"> some more text here </div>
<div class="sometext"> some more text here </div>
<div class="sometext"> some more text here </div>

应添加的示例 css:

.addedclass1 {...}
.addedclass2 {...}
.addedclass2 {...}
.addedclass3 {...}
.addedclass4 {...}

我最想看到的是:

<div class="sometext addedclass3"> some text here </div>
<div class="sometext addedclass2"> some other text here </div>
<div class="sometext addedclass4"> some more text here </div>
<div class="sometext addedclass1"> some more text here </div>
<div class="sometext addedclass2"> some more text here </div>

我有一些 jquery 可以随机化添加的类,但它允许重复:

$(document).ready(function() {
    var classes = ['addedclass1', 'addedclass2', 'addedclass3', 'addedclass4'];

    $('.sometext').each(function(i) {
        $(this).addClass(
        classes[Math.floor(Math.random()*classes.length)]);
    });
});

我很乐意提供任何帮助——我是个该死的初学者:)

最佳答案

每次我都会创建一个临时数组,其中包含类中除先前使用的类之外​​的所有元素。然后从中随机选择一个。

JS fiddle :http://jsfiddle.net/9AbRQ/

var classes = ['addedclass1', 'addedclass2', 'addedclass3', 'addedclass4'];
var prevClass = "";
$('.sometext').each(function() {
    var classes2 = [];
    for (var i = 0; i < classes.length; i++) {
        if (classes[i] !== prevClass) {
            classes2.push(classes[i]);
        }
    }
    $(this).addClass(prevClass = classes2[Math.floor(Math.random()*classes2.length)]);
});

关于jquery - 为具有相同类别的 div 随机添加类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978657/

相关文章:

javascript - jQuery 添加 - 到输入但只添加两次

javascript - 如何编写 jquery js.erb 以同时为 link_to :remote => in rails 3? 提供 html 和 ruby​​ 输出

CSS 嵌套 div 和属性继承

python - 在Python中初始化计算潮湿空气密度的类和类方法

javascript - 使用 javascript 调整所有 div 大小以克服浏览器对 vh、vm 和 css calc 的支持

javascript - 突出显示扩展到多行/列的全日历事件

css - 使用 CSS 在鼠标悬停时带有弹出图像的缩略图

javascript - 如何让 <hr/> 标签垂直移动

class - Intellij IDEA如何运行一个类而不是整个项目?

Java尝试创建一个类来将ArrayList打印到文件