是否有可能在页面上获取所有'a'元素,并使用javascript将每个元素的'.pink','。blue'或'.yellow'RANDOMLY应用于每个元素?我希望在我的页面上有不同的彩色链接,但同样随机。我不知道我是怎么做的,所以我没有提供任何脚本。
答案 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 ) ] );
});
});
评论应该明确它的作用。
答案 1 :(得分:2)
Math.random()
将返回0到1之间的随机浮点数。要将其转换为数组索引,请将其乘以数组的大小,然后将Math.floor
向下舍入:
var arr = ['red','green','blue'];
var idx = Math.floor(Math.random() * arr.length);
alert(arr[idx]);
答案 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]);
});
答案 3 :(得分:0)
var colors = ['pink', 'blue', 'yellow']
$('a').each(function () {
var rand = ~~(Math.random() * colors.length)
$(this).addClass(colors[rand])
})