2012-03-26 73 views
0

如何使用jquery和Javascript從$ 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}] 

我可以很容易地存取權限$ AJAX方法成功這裏面的值,但我怎麼能提取這個值的方法之外,並用它來追加到DOM?

這是我需要的是一些用於/的foreach方法的結果是:

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

然後我用這個變種與其他組合:

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

好,太好了,我怎麼能創造有問題的字符串作爲展示和得到這個var以外的成功方法? – 2012-03-26 12:21:57

+0

我需要這個字符串作爲一個var,全局的,我不能直接追加數據到DOM,因爲其他的東西... – 2012-03-26 12:22:58

+0

@Ingol在你需要的範圍內創建一個數組或對象,並用它來存儲你的數據。 – m90 2012-03-26 12:23:51