1

Jquery と JavaScript を使用して選択ボックスに自動入力しようとしています。

私はいくつかの検索を行い、この質問に出くわし、選択した回答のアドバイスに従いました.

私はもともと、自分の問題を説明するために jsFiddle をセットアップしました: http://jsfiddle.net/GJdBR/

以下の回答に関するアドバイスを受け取った後、新しいjsfiddleを作成しましたが、うまくいきました。http://jsfiddle.net/2UbqP/

ただし、私のコンピューターでは、Windows 7 のクリーン インストールを使用しています。これまでに行ったことは、chrome、apanta、および xampp をインストールすることだけです。localhost/website にアクセスすると、サイトが表示されますが、js 機能が機能せず、上記の jsfiddle のためにコードが正しいことを証明したにもかかわらず、選択ボックスに var が入力されません。

これでエラーが発生します:

$(document).ready(function() {
    populateTranslationOptions();
});

エラーは次のとおりです。

Uncaught SyntaxError: Unexpected token ILLEGAL
4

3 に答える 3

1
$.each(translationOptions, function (index, value) {   
        $('#translationOptions')
            .append($("<option></option>")
            .attr("value",value)
            .text(value)); 
    });

あなたは試しました

$.each(translationOptions, (value) )

正しい構造は であるため、間違っています。$.each(mapData, callbackFunction)ここでは、mapDataオブジェクトまたは配列を意味します。

そして次の課題です。

 $(document).ready(function() {
   populateTranslationOptions;
 });​

それはネ

$(document).ready(function() {
   populateTranslationOptions(); // you missed () here
 });​

は関数を呼び出さpopulateTranslationOptionsないので、関数を呼び出すにはpopulateTranslationOptions().

デモ

1 つの重要な注意事項

関数の後の () は、関数自体を実行し、その値を返すことを意味します。それがなければ、コールバックとして渡すのに便利な関数を持っているだけです。

関連参照:

于 2012-06-03T18:21:13.943 に答える
1

コードにいくつかの問題があります。これをチェックして

function populateTranslationOptions ()
{
    var translationOptions = ["Egyptian Hieroglyphs", "Al Bhed (Final Fantasy X)", "Futurama"];
    $.each(translationOptions ,function(i,value) {   
        $('#translationOptions')
            .append($("<option></option>")
            .attr("value",value)
            .text(value)); 
    });
}

$(document).ready(function() {
   populateTranslationOptions();
 });​

コードの問題:

  • $.each構文が間違っています

    $.each(translationOptions (値)) {

する必要があります

$.each(translationOptions ,function(i,value) {
  • 関数を呼び出していませんでした。populateTranslationOptions;関数を呼び出して populateTranslationOptions();いません。

働くフィドル

于 2012-06-03T18:21:20.130 に答える
1

配列の場合、$.each は不要です。むしろ単純なループを使用できます。次のように -

function populateTranslationOptions()
{
    var translationOptions = ["Egyptian Hieroglyphs", "Al Bhed (Final Fantasy X)", "Futurama"];
    for (var i = 0; i < translationOptions.length; i++) {
        $('#translationOptions')
            .append('<option value="' + translationOptions[i] + '">' + translationOptions[i] + '</option>');
    };
}

$(document).ready(function() {

   populateTranslationOptions();
 });​
于 2012-06-03T18:29:58.777 に答える