单击按钮上的Javascript随机图像

时间:2013-07-29 20:04:01

标签: javascript html

我一直在关注如何通过在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()"/>

7 个答案:

答案 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 。但你可以随意做。