将随机类应用于元素

时间:2012-07-30 23:02:08

标签: javascript jquery hyperlink

  

可能重复:
  Apply a random class to every element specified

是否有可能在页面上获取所有'a'元素,并使用javascript将每个元素的'.pink','。blue'或'.yellow'RANDOMLY应用于每个元素?我希望在我的页面上有不同的彩色链接,但同样随机。我不知道我是怎么做的,所以我没有提供任何脚本。

4 个答案:

答案 0 :(得分: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 ) ] );
    });

});

评论应该明确它的作用。

Try it

答案 1 :(得分:2)

Math.random()将返回0到1之间的随机浮点数。要将其转换为数组索引,请将其乘以数组的大小,然后将Math.floor向下舍入:

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

alert(arr[idx]);

Math.random()

答案 2 :(得分:1)

你可以把你的类放在数组中,然后遍历“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/

答案 3 :(得分:0)

var colors = ['pink', 'blue', 'yellow']
$('a').each(function () {
  var rand = ~~(Math.random() * colors.length)
  $(this).addClass(colors[rand])
})