0

これが私のスクリプトです:

function getRandomArrayIndex(source_array) {

return Math.floor(Math.random() * source_array.length);

}

function getRandomArrayEntry(source_array) {

var random_index = getRandomArrayIndex(source_array);

return source_array[random_index];

}

function getRandomV5test() {

var v5tests = [
["This should tell me I have the following amount of minutes: "],
["This is the number of times I want to jump up and down: "],
["This is a quote."],
]; var random_v5test = getRandomArrayEntry(v5tests);

return random_v5test;

}

function displayV5test(v5test) {
    var element = document.getElementById("v5test");
    if(element !== null){
        var TEXT_ROW = 0;
        var LINK_ROW = 1;
        var v5test_text = v5test[TEXT_ROW];
        var v5test_link = v5test[LINK_ROW]; 
        if (v5test_link != null) {
            element.innerHTML = '<a href="' + v5test_link + '">' + v5test_text + '</a>';
        } else {
            element.innerHTML = v5test_text + '<span id="time"></span>';
        }
    }
}

function generateRandomV5test(){

var random_v5test = getRandomV5test();

displayV5test(random_v5test);

}

これは、複数の兄弟スクリプトと組み合わせて、ランダムな結果のフレーズを生成します。指定されたスパンID('time')にランダムなフレーズを挿入する他のスクリプトの前に実行され、ページの最終結果は次の行に沿ったものになる可能性があります。

これにより、次の分数があることがわかります。40

問題は、これでは柔軟性が得られないことです。「v5test_text」の後に指定するスパンは、常にその後に来る必要があります。さらに、3番目の配列オプションは、スクリプトによって選択された配列オプションに関係なく、次のように乱数を返します。

これは引用です。25

私ができるようにしたいのは、次のようなさまざまな配列オプション内にhtmlコードを配置することです。

var v5tests = [
["This should tell me I have <span id="time"></span> minutes. "],
["I want to jump up and down <span id="time"></span> times. "],
["This is a quote."],

だから、本当にそれは簡単な質問です。このインスタンスで使用されるhtmlコードがスクリプト自体によって混乱しないようにするには、どの構文を使用しますか?これを知っていると、私のWebサイトのコンテンツに関してほぼ無制限の柔軟性が得られます。

どんな助けでも大歓迎です!:)

4

2 に答える 2

0

一重引用符を使用して文字列を定義します...

var v5tests = [
['This should tell me I have <span id="time"></span> minutes.'],
['I want to jump up and down <span id="time"></span> times.'],
['This is a quote.'],

または、文字列内の二重引用符をエスケープします。

var v5tests = [
["This should tell me I have <span id=\"time\"></span> minutes. "],
["I want to jump up and down <span id=\"time\"></span> times. "],
["This is a quote."],
于 2012-08-14T18:53:44.923 に答える
0

バックスラッシュエスケープ文字を使用して引用符をエスケープする必要があるようです。

var v5tests = [
    "This should tell me I have <span id=\"time\"></span> minutes.",
    "I want to jump up and down <span id=\"time\"></span> times. ",
    "This is a quote."
];
于 2012-08-14T18:56:00.320 に答える