2017-01-10 6 views
0

JQueryを使用して配列から追加するオプションのドロップダウンリストをhtmlで作成しようとしています。JQueryを使用して配列からタグを選択するためのオプションタグを追加する

オープニング間のテキストとは別に、すべてが正しく動作しているように見えます。&終了タグは表示されません。私はとても疲れていますか?シンプルなタイプミスや何か間違っていますか?

JSとjQueryのコードは次のとおりです。

var displayMenuSelections = function(){ 
    var menuSelection = menu[0].prices[0]; 
    var menuItems = Object.keys(menuSelection); 
    menuItems.forEach(menuFunction); 
} 

function menuFunction(item){ 
    $('#menu').append($('<option value="' + item + '">' + item + '</option')); 
} 

典型的なオプションタグの結果は、(開始タグと終了タグの間で不足している「アイテム」で)次のようになります。

<option value="Cafe Latte"></option> 

答えて

1

閉じるオプションタグに>を忘れてしまった。 JQueryはそれを閉じようとしますが、その過程で内部の項目テキストは設定されません。

Jqueryは、あなたが与えたものを何でも処理しようとする哲学をとっています。これは良いことも悪いこともありますが、エラー/例外が発生しないのでデバッグが難しくなります。

var displayMenuSelections = function(){ 
    var menuSelection = menu[0].prices[0]; 
    var menuItems = Object.keys(menuSelection); 
    menuItems.forEach(menuFunction); 
} 

function menuFunction(item){ 
    $('#menu').append($('<option value="' + item + '">' + item + '</option>')); 
} 
+0

ありがとう、遅いですし、疲れました。私は100回好きだと誓って、何かが見当たりませんでした!私の悪い! – PaulWallis42

-1

パラメータを渡していないようです。

menuFunction(item) 

私はちょうどあなたが

menuItems.forEach(menuFunction(menuSelection)); 

にあなたの関数呼び出しを変更してみてくださいあなたは

var menuSelection 

を送信しようとしていると仮定していますしかし私はこれをテストしていません!

+1

これは当てはまりません。 javascript forEachメソッドは、呼び出されたオブジェクトの各要素を関数に渡します。したがって、 'menuItems.forEach(menuFunction)'は、menuItemオブジェクトの各要素をmenuFunctionに渡します。 – VKK

関連する問題