Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将随机类应用于元素_Javascript_Jquery_Hyperlink - Fatal编程技术网

Javascript 将随机类应用于元素

Javascript 将随机类应用于元素,javascript,jquery,hyperlink,Javascript,Jquery,Hyperlink,可能重复: 是否可以获取页面上的所有“a”元素,并使用javascript将类“.pink”、““.blue”或“.yellow”随机应用于每个a元素?我想在我的页面上有不同颜色的链接,但同样随机。我不知道该怎么做,因此没有任何脚本提供。Math.random()将返回一个介于0和1之间的随机浮点数。要将其转换为数组索引,请将其乘以数组的大小,然后取Math.floor四舍五入: var arr = ['red','green','blue']; var idx = Math.floor(Ma

可能重复:

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

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

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

alert(arr[idx]);

当您按照标签中的说明使用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]);
});​

现场演示:

你真的是指
$。每个
?是的,都有问题吗?:)为什么不
$('a').each(function(){…$(this).addClass(…)…}
?这就是jQuery的美妙之处。如何确保颜色设置一次?您的代码很好,但有时会在多个元素上设置相同的颜色。
var colorClasses = ['pink', 'blue', 'yellow'];
$("a").each(function(e){
    classIndex = Math.floor(Math.random() * colorClasses.length);
    $(this).addClass(colorClasses[classIndex]);
});​