そのコードに関するいくつかのメモ。これらを誤解しないでください。JavaScript は初めてです。人に指摘してもらうことは、私たちが学ぶ 1 つの方法です。
を使用する理由はほとんどありませんnew Array
。配列リテラルを使用します。この場合:
var quotes = [
"text1",
"Text2",
"text3",
"text4"
];
このlanguage
属性は 90 年代に廃止され、type
onのデフォルト値はscript
ですtext/javascript
。必要なのはそれだけ<script src="..."></script>
です。
乱数が間違っています。(包括的) から(排他的Math.random
) までの数値を返すため、数値から 1 を引いた数値ではなく、画像の数を乗算するだけです。0
1
document.write
避けるのが一番です。現代の Web プログラミングでこれを使用する理由はほとんどありません。
あなたが説明したことを実行する方法の 1 つを次に示します。ライブソース
(エントリが 2 つしかないため、何度も更新する必要があります。同じエントリが表示される可能性はかなり高くなります。)
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Random Text Plus Image</title>
</head>
<body>
<div id="quote"></div>
<script>
(function() {
var quotes = [
{
text: "text1",
img: "http://i.stack.imgur.com/FqBE6.jpg?s=32&g=1"
},
{
text: "text2",
img: "https://www.gravatar.com/avatar/ca3e484c121268e4c8302616b2395eb9?s=32&d=identicon&r=PG",
}
];
var quote = quotes[Math.floor(Math.random() * quotes.length)];
document.getElementById("quote").innerHTML =
'<p>' + quote.text + '</p>' +
'<img src="' + quote.img + '">';
})();
</script>
</body>
</html>
私がそこでしたこと:
<div id="quote"></div>
引用符と画像を保持する要素 the を出力します。これは の代わりですdocument.write
。
配列リテラルを使用しましたが、配列リテラルにはオブジェクトリテラル (などを含む{...}
ものtext: "text1"
) が含まれています。したがって、私の配列にはオブジェクトが含まれており、各オブジェクトにはプロパティtext
(その引用のテキスト) とimg
(使用する画像の URL) があります。
ランダムなものを修正しました。
テキスト (HTML マークアップと想定) と画像を出力するときは、コードの上innerHTML
のquote
div
I output を設定して行います。
すべてのコードを囲み関数に入れ、すぐに呼び出します。これにより、グローバル変数が作成されなくなります。
お役に立てれば。