2012-03-26 6 views
0

Javeryを使って$ ajaxからJSONを抽出し、foreachを実行し、html DOMに追加する文字列を作成するには?Jqueryを使用してJSONから複数のHTML要素を生成しますか?

のような何か:

$(document).ready(function (e) { 

$.ajax({ 
    type: "POST", 
    url: "Companies/GetSearchRatios", 
    context: this, 
    success: function (data) { 
     //return JSON 
    } 
}); 

結果のJSON

[{"name":"MyNAme","value":350},{"name":"Hello","value":356}] 

私は簡単に$アヤックス方法の成功の内側に、この値をアクセスもできますが、どのように私は法の外に、この値を抽出し、追加するためにそれを使用することができますDOMに?

これは、私はいくつかのために/ foreachの方法の結果として必要なものです:

var $gElemRatios = 
    '<option value=""></option>' + 
    '<option value="350">MyNAme</option>' + 
    '<option value="356">Hello</option>'; 

その後、私は他と結合するために、このVARを使用します。

var $gElem = 
    '<div class="cbox cboxQuarterWidth">' + 
     '<select id="combobox_0">' + 
       $gElemRatios + // here I add previous generated elem 
     '</select>' + 
    '</div>'; 

そして最後に:

$("#main").append($gElem); 

アイデア

答えて

3

あなたは成功のハンドラに渡されたデータをループするために$.eachを使用することができます。

$.ajax({ 
    type: "POST", 
    url: "Companies/GetSearchRatios", 
    context: this, 
    success: function (data) { 
     $.each(data,function(){ 
      console.log(this.name); //just an example how to access things 
      $('#select').text(this.value); //maybe? 
     }); 
    } 
}); 

を参照してください。このfiddle

+0

OK、素晴らしい、私は、問題のショーとして文字列を作成し、これを取得することができる方法varは成功のメソッドの外ですか? –

+0

私はこの文字列をvar、globalとして必要とします。他のもののためにDOMにデータを直接追加することはできません。 –

+0

@Ingolは必要なスコープ内に配列またはオブジェクトを作成し、データを格納するために使用します。 – m90

関連する問題