0

可能重复:
将随机类应用于指定的每个元素

是否可以获取页面上的所有“a”元素并将“.pink”、“.blue”或“.yellow”类随机应用于每个带有javascript的a元素?我想在我的页面上有不同颜色的链接,但同样随机。我不知道该怎么做,所以我没有任何脚本可以提供。

4

4 回答 4

3

当您按照标签中的说明使用 jQuery 时,这是一个可能的解决方案:

// when document is loaded
$(document).ready(function () {

    // set classes
    var classes     = new Array ('pink', 'blue', 'green');

    // calculate length once, as this will never change
    var length      = classes.length;

    // select all a-tags
    var links       = $('a');

    // loop through all a-tags and apply color randomly
    $.each( links, function(key, value) {
        // get random value/class-name from array and add it using the addClass function
        $(value).addClass( classes[ Math.floor ( Math.random() * length ) ] );
    });

});

评论应该清楚它的作用。

试试看

于 2012-07-30T23:13:05.397 回答
2

您可以将您的类放入数组中,然后遍历“A”标签并为每个标签分配随机索引(使用 Math.random()):

var colorClasses = ['pink', 'blue', 'yellow'];
$("a").each(function(e){
    classIndex = Math.floor(Math.random() * colorClasses.length);
    $(this).addClass(colorClasses[classIndex]);
});​

现场演示:http: //jsfiddle.net/ALngA/2/

于 2012-07-30T23:13:55.753 回答
2

Math.random()将返回一个介于 0 和 1 之间的随机浮点数。要将其转换为数组索引,请将其乘以数组的大小并向Math.floor下取整:

var arr = ['red','green','blue'];
var idx = Math.floor(Math.random() * arr.length);

alert(arr[idx]);

数学随机()

于 2012-07-30T23:04:10.270 回答
0
var colors = ['pink', 'blue', 'yellow']
$('a').each(function () {
  var rand = ~~(Math.random() * colors.length)
  $(this).addClass(colors[rand])
})
于 2012-07-30T23:04:15.417 回答