Javascript 如何使onclick函数随机?

Javascript 如何使onclick函数随机?,javascript,css,stylesheet,Javascript,Css,Stylesheet,请大家看看我根据回复编辑的代码。 我的javascript中现在有以下代码: function test(sheet) { document.getElementById('pagestyle').setAttribute('href', sheet); } 我想用这个函数来改变我的样式表 onclick="test('CSS/katy.css')" 我的问题是,如何使“katy.css”成为我文件夹中的随机css文件 我在考虑一个数组,但我不知道如何应用它 var cssN

请大家看看我根据回复编辑的代码。

我的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'>"; 
编辑测试功能:

 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);
 }
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) + "'>");
功能测试(表)
{
var cssName1=新数组(3)
cssName1[0]=“”;
cssName1[1]=“”;
cssName1[2]=“”;
var rndIndex=Math.floor(Math.random()*3);
document.getElementById('pagestyle').setAttribute('href',sheet);
}

您可以通过以下方式在[1,3]中生成一个随机整数:

var rndIndex = Math.floor(Math.random()*3);
然后,您可以使用生成的索引获取所需的css:

onclick="test(cssName[rndIndex])";
注意在cssName表中,最好只放置相应的href。我这么说是因为我在函数声明中注意到,您为href属性设置了值


更新我建议,正如您将在小提琴中看到的那样,为您的目的声明一个无参数函数。我已经声明了setCss函数,然后选择pagestyele元素,并将其名为“href”的属性设置为一个css

您可以通过以下方式在[1,3]中生成一个随机整数:

var rndIndex = Math.floor(Math.random()*3);
然后,您可以使用生成的索引来获取所需的css:

onclick="test(cssName[rndIndex])";
注意在cssName表中,最好只放置相应的href。我这么说是因为我在函数声明中注意到,您为href属性设置了值


更新我建议,正如您将在小提琴中看到的那样,为您的目的声明一个无参数函数。我已经声明了setCss函数,然后选择pagestyele元素,并将其名为“href”的属性设置为一个css

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

 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);
 }
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) + "'>");
var cssName=新数组(3)
cssName[0]=“katy.css”;
cssName[1]=“daftpunk.css”;
cssName[2]=“wiliam.css”;
函数getRand(数组){
返回数组[Math.floor(Math.random()*array.length)];
}
var static=“”);

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

 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);
 }
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) + "'>");
var cssName=新数组(3)
cssName[0]=“katy.css”;
cssName[1]=“daftpunk.css”;
cssName[2]=“wiliam.css”;
函数getRand(数组){
返回数组[Math.floor(Math.random()*array.length)];
}
var static=“”);

您的方式是正确的

使用数组,现在可以选择一个随机元素,如下所示:

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

你的方式是正确的

使用数组,现在可以选择一个随机元素,如下所示:

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

好的,您可以使用如下所示的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]+")";

好的,您可以使用如下所示的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]+")";

您可以使用
windowsettimeout()方法
,例如每30秒添加一个带有jquery的新链接。

您可以看到地址:


但这种想法会导致网站速度降低。

您可以使用
窗口设置超时()方法,例如,每隔30秒使用jquery添加一个新链接。

您可以看到地址:


但这种想法会导致网站速度下降。

双引号重复我不认为
onclick=“test”(“+cssName[rndIndex]+”)
将运行,但
onclick=“alert(cssName[rndIndex])”
将运行。谢谢您的回复。我使用了onclick=“test('CSS/'+cssName1[rndIndex])”(是否正确?)并对test()函数进行了编辑。你能看一看吗,因为它对我不起作用。@christopaisios请测试你的答案,
onclick=“test('+cssName[rndIndex]+')
的工作方式与您认为的不同OP没有直接复制代码是件好事up@user3406286你应该把这一个标记为最佳答案并做一些研究,如果没有结果,那么就发布一个新的问题,重复双引号,我不认为
onclick=“test”(“+cssName[rndIndex]+”)
将运行,但
onclick=“alert(cssName[rndIndex])”
将运行。谢谢您的回复。我使用了onclick=“test('CSS/'+cssName1[rndIndex])”(是否正确?)并对test()函数进行了编辑。你能看一看吗,因为它对我不起作用。@christopaisios请测试你的答案,
onclick=“test('+cssName[rndIndex]+')
的工作方式与您认为的不同OP没有直接复制代码是件好事up@user3406286你应该把这一个标记为最佳答案并做一些研究,如果没有任何结果,那么就发布一个新的问题
onclick=“test('CSS/'+cssName1[rndIndex])”
将不起作用,因为您正在测试中定义数组和随机索引。因此,当你将数组传递给函数时,它们并没有被定义。事实上,因为你是随机选取的,所以没有必要将数组传递给函数,但是要在函数内部做所有的事情,请参见嘿,谢谢,警报确实显示了随机样式表,但我如何向html文件暗示这一点,以便它实际显示样式表可能的重复项
onclick=“test('CSS/'+cssName1[rndIndex])”
将不起作用,因为您正在测试中定义数组和随机索引。因此,当你将数组传递给函数时,它们并没有被定义。事实上,因为你是随机选取的,所以没有必要将数组传递给函数,但是要在函数内部做所有的事情,请参见嘿,谢谢,该警报确实显示了一个随机样式表,但我如何向html文件暗示这一点,以便它实际显示样式表什么是jaquery?W3学校是否与官方规范相关?(答:否)W