0

タイトルに自信がない。

変数のリスト、ベース名と数字を取得しました:

var answerOption1 = "Agra";
var answerOption2 = "Chicago";
var answerOption3 = "Halong Bay";

それで、選択リストをランダムに動的に入力したいと思います。合計で 12 個の変数に数値の配列を使用します。

$('<option>').val(theAnswer).addClass('fieldbox').text(answerOption + arr[i]).appendTo("#answers");

answerOption が定義されていないため、動作していないためエラーが発生しますが、変数から値を呼び出す前に配列から数値を含める必要があります

4

4 に答える 4

2

ブラケット表記を使用して、キーでプロパティにアクセスできます。

.text(window['answerOption' + arr[i]])

あなたの変数はグローバルなので(私は思う)ウィンドウを使用しました。そうでない場合は、それらをオブジェクトに入れ、windowそのオブジェクトの名前に置き換える必要があります。

値の実際の配列を作成する方がよい場合があります。

var answerOptions = [
    "Agra",
    "Chicago",
    "Halong Bay"
];

.text(answerOptions[i])
于 2013-10-10T14:44:57.147 に答える
1

変数の代わりに answerOption を定義し、インデクサーを使用して配列の各要素にアクセスする必要があります。

var answerOption  = ["Agra", "chicago", "Halong Bay"];
$('<option>').val(theAnswer).addClass('fieldbox').text(answerOption[i]).appendTo("#answers");
于 2013-10-10T14:45:09.280 に答える
1

12 個の変数ではなく、単一の配列を使用する必要があります。

var answerOptions = [
    "Agra",
    "Chicago",
    "Halong Bay"
];

次に、変数のインデックスを指すように設定します。

$('<option>')
    .val(theAnswer)
    .addClass('fieldbox')
    .text(answerOptions[i])  // <----
    .appendTo("#answers");
于 2013-10-10T14:45:26.283 に答える
0

名前を動的に生成しているときに変数から取得することは可能ですが、スコープによっては扱いにくい場合があります。次のように、代わりに変数を使用してオブジェクトを作成する傾向があります。

var variableObject = {
    answerOption1 : "Agra",
    answerOption2 : "Chicago",
    answerOption3 : "Halong Bay"
}

次に、次のようにします。

$('<option>').val(theAnswer).addClass('fieldbox').text(variableObject["answerOption" + arr[i]]).appendTo("#answers");

もちろん、arr[i]「変数」(実際にはオブジェクトのプロパティ) 名の動的部分があると仮定すると、1、2、3 などになります。

于 2013-10-10T14:46:50.833 に答える