Как сделать данные ответа JSON динамическими?

#jquery #json

#jquery #json

Вопрос:

У меня есть следующий код, который извлекает данные с помощью запроса JSON:

 // Replace home page template wildcards with data from database (JSON)
$.getJSON("mvc/models/home.php?action=getpagecontentamp;amp;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]);
    }
  

Но это выдает ошибку при замене «data [x].». Как я могу это сделать? Спасибо!

Комментарии:

1. Не по теме: Что с amp;amp; в URL? Я думаю, 1 amp; достаточно.

Ответ №1:

Измените свой for на этот:

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

Надеюсь, это поможет. Приветствия