如何使onclick函数随机?

时间:2014-04-07 14:42:15

标签: javascript css stylesheet

你们可以根据回复查看我编辑的代码吗。

我现在在我的javascript中有这个代码:

 function test(sheet)
 {
     document.getElementById('pagestyle').setAttribute('href', sheet);
 }

我想用这个函数来改变我的样式表

onclick="test('CSS/katy.css')"

我的问题是,如何制作" katy.css"我文件夹中的随机css文件。

我在考虑阵列,但我不知道如何应用它。

var cssName=new Array(3)

cssName[0]="<link rel='stylesheet' type='text/css' href='CSS/katy.css'>";
cssName[1]="<link rel='stylesheet' type='text/css' href='CSS/daftpunk.css'>";
cssName[2]="<link rel='stylesheet' type='text/css' href='CSS/wiliam.css'>"; 

编辑按钮:

onclick="test('CSS/' + cssName1[rndIndex])" 

编辑测试功能:

 function test(sheet)
 {
    var cssName1=new Array(3)

    cssName1[0]="<link rel='stylesheet' type='text/css' href='CSS/katy.css'>";
    cssName1[1]="<link rel='stylesheet' type='text/css' href='CSS/daftpunk.css'>";
    cssName1[2]="<link rel='stylesheet' type='text/css' href='CSS/wiliam.css'>";  
    var rndIndex= Math.floor(Math.random()*3);

     document.getElementById('pagestyle').setAttribute('href', sheet);
 }

5 个答案:

答案 0 :(得分:4)

您可以使用以下方式在[1,3]中生成随机int数:

var rndIndex = Math.floor(Math.random()*3);

然后你可以使用生成的索引来获得你想要的css:

onclick="test(cssName[rndIndex])";

注意在cssName表中,最好只放置相应的href&#39; s。我这样说,因为我在你的函数声明中注意到你设置了href属性的值。

更新我建议,正如您将在小提琴here中看到的那样,为您的目的声明无参数函数。我已经声明了setCss函数,然后选择了pagestyele元素并设置了它的名为&#39; href&#39;随机地给你的一个css。

答案 1 :(得分:1)

您可以在函数中使用Math.random

var cssName=new Array(3)

cssName[0]="katy.css";
cssName[1]="daftpunk.css";
cssName[2]="wiliam.css"; 

function getRand(array){
    return array[ Math.floor(Math.random() * array.length) ];
}

var static = "<link rel='stylesheet' type='text/css' href='";

alert(static + getRand(cssName) + "'>");

<强> DEMO

答案 2 :(得分:1)

你的方式正确。

使用您的数组,现在您可以选择一个随机元素:

cssName[parseInt(Math.random() * cssName.length + 1)]

答案 3 :(得分:0)

好的,您可以使用如下的rand函数:

首先定义数组

var cssName=new Array(3)

cssName[0]="CSS/katy.css";
cssName[1]="CSS/daftpunk.css";
cssName[2]="CSS/wiliam.css";

现在随机选择工作表

var index = Math.floor((Math.random()*3));

然后选择随机表

onclick = "test("+cssName[index]+")";

答案 4 :(得分:0)

您可以使用Window setTimeout() Method,例如每30秒使用jquery添加一个新链接。 setTimeout()

你可以看到地址: How to use jQuery setTimeout function

但是这个想法会导致网站的速度降低。