可能重复:
将随机类应用于指定的每个元素
是否可以获取页面上的所有“a”元素并将“.pink”、“.blue”或“.yellow”类随机应用于每个带有javascript的a元素?我想在我的页面上有不同颜色的链接,但同样随机。我不知道该怎么做,所以我没有任何脚本可以提供。
可能重复:
将随机类应用于指定的每个元素
是否可以获取页面上的所有“a”元素并将“.pink”、“.blue”或“.yellow”类随机应用于每个带有javascript的a元素?我想在我的页面上有不同颜色的链接,但同样随机。我不知道该怎么做,所以我没有任何脚本可以提供。
当您按照标签中的说明使用 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 ) ] );
});
});
评论应该清楚它的作用。
您可以将您的类放入数组中,然后遍历“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/
Math.random()
将返回一个介于 0 和 1 之间的随机浮点数。要将其转换为数组索引,请将其乘以数组的大小并向Math.floor
下取整:
var arr = ['red','green','blue'];
var idx = Math.floor(Math.random() * arr.length);
alert(arr[idx]);
var colors = ['pink', 'blue', 'yellow']
$('a').each(function () {
var rand = ~~(Math.random() * colors.length)
$(this).addClass(colors[rand])
})