2011-05-06 99 views
0

我有下面的代碼與JSON請求檢索數據:如何使JSON響應數據動態?

// Replace home page template wildcards with data from database (JSON) 
$.getJSON("mvc/models/home.php?action=getpagecontent&&jsoncallback=?", function(data) { 

// Set markup identifiers 
var identifiers = new Array(); 
identifiers[0] = "introheader1";  
identifiers[1] = "introtext1";  

// Replace markup on page 
for (var x = 0; x < data.length; x++) { 
    if (data[x].introheader1 != undefined){ 
     $(".introheader1").replaceWith(data[x].introheader1); 
    } 
    if (data[x].introtext1 != undefined){ 
     $(".introtext1").replaceWith(data[x].introtext1); 
    } 
    } 
}); 

這工作得很好,但它是一個痛苦,如果有很多的元素返回。因此,而不是這對每一個元素:

if (data[x].introheader1 != undefined){ 
     $(".introheader1").replaceWith(data[x].introheader1); 
    } 

我想讓它動態通過與標識符陣列,像這樣的值替換硬編碼值,所以我只需要擁有一個可以遍歷:

if (data[x].identifiers[0] != undefined){ 
     $("." + identifiers[0]).replaceWith(data[x].identifiers[0]); 
    } 

但它給出了「數據[x]」的錯誤。更換。我怎樣才能做到這一點?謝謝!

+0

無關:網址中的&&是什麼?我認爲1''就夠了。 – Rudie 2011-05-06 09:01:39

回答

1

更改for這樣:

for (var x = 0; x < data.length; x++) { 
    for(var prop in data[x]){ 
    $("."+prop).replaceWith(data[x][prop]); 
    } 
} 

希望這有助於。乾杯

+0

謝謝,它效果很好! – John 2011-05-06 09:23:24