1

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()"/>
4

7 に答える 7

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()

于 2013-07-29T20:27:02.673 に答える
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>
于 2013-07-29T20:07:44.570 に答える
1

)if ステートメントと document.write でa を忘れてしまい、タグ'を閉じました。<img>ここをチェックしてください:

if (rnd == 0) {
        rnd = 1;
    }

document.write('<img class="who" src="' + myImages1[rnd] + '"/>');
于 2013-07-29T20:10:39.203 に答える
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か? 私は決して知りません。

于 2016-07-26T00:27:27.763 に答える
0

ドキュメントに書き込んでいる HTML は不完全です。

次のようなものが必要です:

document.write("<img class='who' src='" + myImages1[rnd] + "'>");

また、document.write は通常、ページに要素を追加する方法としては推奨されないことにも注意してください。

于 2013-07-29T20:08:59.470 に答える
-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として設定しています。しかし、あなたは好きなようにすることができます。

于 2016-07-25T09:14:28.720 に答える