我一直在关注如何通过在Javascript中设置数组来随机化图像的一些教程。它不起作用 - 图像本身没有出现,甚至没有任何错误。
的JavaScript
<script type="text/javascript">
function randomImg1(){
var myImages1 = new Array ();
myImages1[1] = "img/who/1.jpg";
myImages1[2] = "img/who/2.jpg";
myImages1[3] = "img/who/3.jpg";
var rnd = Math.floor(Math.random() * myImages1.length);
if(rnd == 0{
rnd = 1;
}
document.write(<img class="who" src="'+myImages1[rnd]);
}
</script>
我的按钮看起来像这样
<input class="randombutton" style="float: left;" type="button" value="Randomize" onclick="randomImg1()"/>
答案 0 :(得分:1)
您必须在此行中添加引号并关闭if语句:
<script type="text/javascript">
function randomImg1() {
var myImages1 = new Array();
myImages1[1] = "img/who/1.jpg";
myImages1[2] = "img/who/2.jpg";
myImages1[3] = "img/who/3.jpg";
var rnd = Math.floor(Math.random() * myImages1.length);
if (rnd == 0) {
rnd = 1;
}
document.write('<img class="who" src="' + myImages1[rnd] + '">');
}
</script>
答案 1 :(得分:1)
您忘记了if语句和文档中的)
。写错了'
并关闭<img>
标记。点击这里:
if (rnd == 0) {
rnd = 1;
}
document.write('<img class="who" src="' + myImages1[rnd] + '"/>');
答案 2 :(得分:1)
确保跟踪所有结束括号和括号。
此代码适用于您:
<script type="text/javascript">
function randomImg1() {
var myImages1 = new Array ();
myImages1[1] = "img/who/1.jpg";
myImages1[2] = "img/who/2.jpg";
myImages1[3] = "img/who/3.jpg";
var rnd = Math.floor( Math.random() * myImages1.length );
if( rnd == 0 ) {
rnd =1;
}
html_code = '<img class="who" src="' + myImages1[rnd] + '" />";
document.write(html_code);
}
</script>
如果我是你,我会在你的DOM文档中指出一个更具体的点。你可以使用一个非常简单的jQuery脚本,如果你想:$("#testing").html(html_code);
而不是你的document.write()
答案 3 :(得分:1)
要将页面中的某些内容附加到HTML中的元素,请使用
.append
而不是“写”功能,因为.append实际上会将内容APPEND到指定的元素,而不是整个文档。
因此,在HTML中,您应该创建一个ID为“our_div”的DIV
<html>
<head></head>
<body>
<!-- Text will be appended to this DIV via JS -->
<div id="the_div">Hello, </div>
</body>
</html>
使用类似的东西:
function add_text() {
$("#the_div").append("World"); // appends text "World" to the end of that div.
}
现在,在你的HTML中,你应该有一个调用函数“add_text()”的按钮。
<button id="the_button" onClick="add_text();">Click Here to Add Text</button>
现在呢!
当用户点击该按钮时,它会将文本“World”附加到ID为“the_div ...”的DIV上。那么,我们有......
Hello, World
以下是整个代码:
<html>
<head>
<script type="text/javascript">
function add_text() {
$("#the_div").append("World");
}
</script>
</head>
<body>
<div id="the_div">
Hello,
</div>
<button id="the_button" onClick="add_text();">Click!</button>
</body>
</html>
尝试使用
.html
替换某些东西......例如,我在我开发的游戏中使用骰子滚动功能。当玩家掷骰子时......
$("#results").append(Math.floor(Math.rand()*6));
给我们这样的东西......
(每卷)
results: 142563342515246422
如果我使用.html ...
$("#results").html(Math.floor(Math.rand()*6));
我们留下更像这样的东西
(第一次滚动)
results: 5
(第二卷)
results: 2
(第三卷)
results: 6
等等!
答案 4 :(得分:0)
您写入文档的HTML不完整。
您需要以下内容:
document.write("<img class='who' src='" + myImages1[rnd] + "'>");
我还要提醒一下,document.write通常不是向页面添加元素的首选方法,但似乎这是一个学习的例子,而不是现实世界的例子。
答案 5 :(得分:0)
哦,伙计,这很尴尬。疯狂你能在3年内学到多少东西。我认为这样做的最佳方式如下(假设没有文件夹结构模式)。没有测试但应该工作。
var images = ["img/who/1.jpg","img/who/2.jpg","img/who/3.jpg"];
function getRandomImage(){
var rnd = Math.floor(Math.random() * images.length);
return images[rnd];
}
function changeImage(){
var img = document.querySelector("#myImg");
img.src = getRandomImage();
}
function init(){
var el = document.querySelector(".myClass");
el.onclick = changeImage;
}
window.onload = init;
我在考虑将数组分配给[1]
然后进行if
检查?我永远不会知道。
答案 6 :(得分:-1)
这是我能想到的最佳方式,我更喜欢这个,是因为它不是改变整个页面,而是改变 img 中的 src 标签
以下是代码:
<强>脚本强>
function imgchange() {
var myImages1 = new Array();
myImages1[1] = "img/who/1.jpg";
myImages1[2] = "img/who/2.jpg";
myImages1[3] = "img/who/3.jpg";
var rnd = Math.floor(Math.random() * myImages1.length);
if (rnd == 0) {
rnd = 1;
}
document.getElementById("gen-img").src = myImages1[rnd];
}
<强> HTML 强>
<p><img id="gen-img" src="img/who/1.jpg"></p>
<p><input type="button" value="Random" onclick="imgchange();" /></p>
但我做的是,我有一个空白的png文件,其中没有任何内容,我将其设置为我的图像的默认 src 。但你可以随意做。