Получить ответ JSON и вставить в ячейки таблицы на основе определенного ключа в JSON

#jquery #html #json

#jquery #HTML #json

Вопрос:

Ниже приведен мой ответ JSON от сервера

 [  
{  
  "id":"32df40f8-44a8-11e9-abcd-005056a92189",
  "filename":"BHR.PNG",
  "name":"Qatar",
  "step_c":"1",
  "date_uploaded":"2019-03-12"
},
{  
  "id":"693e2cb4-40a6-11e9-9754-005056a92189",
  "filename":"CT2.PNG",
  "name":"Qatar",
  "step_c":"1",
  "date_uploaded":"2019-03-07"
},
{  
  "id":"87d29f34-40a6-11e9-b03a-005056a92189",
  "filename":"CT3.PNG",
  "name":"Qatar",
  "step_c":"2",
  "date_uploaded":"2019-03-07"
}
]
  

Часть моего кода jQuery ниже

 if(json != null amp;amp; json.length > 0)
{      
$.each(json, function(index, value) {
if(this.step_c == 1){
   $("#s1").html("<a href='https://example.com/rest/v10/DocumentLinks/"   this.id   "/file/uploadfile?force_download=1amp;platform=base'>"   this.filename   "</a>");
   $("#u1").html(this.date_uploaded);
}
if(this.step_c == 2){
   $("#s2").html("<a href='https://example.com/rest/v10/DocumentLinks/"   this.id   "/file/uploadfile?force_download=1amp;platform=base'>"   this.filename   "</a>");
   $("#u2").html(this.date_uploaded);
}
});
}
  

Здесь я пытаюсь получить данные из ответа JSON и вставить их в ячейки моей HTML-таблицы. s1, u1 — это tds таблицы.

Что мне нужно сделать здесь, так это когда step_c равен 1, я хочу получить все имена файлов и вставить в td через запятую. Здесь, когда step_c равен 1, есть два имени файлов BHR.PNG и CT2.PNG, поэтому я хочу получить оба имени файлов и вставить их в #s1 как BHR.PNG, CT2.PNG.

Как я могу это сделать? Спасибо

Ответ №1:

Приятный и простой этот.

Заменить:

 $("#s1").html("<a href='https://example.com/rest/v10/DocumentLinks/"   this.id   "/file/uploadfile?force_download=1amp;platform=base'>"   this.filename   "</a>");
  

С помощью:

     var fileLabel = this.filename;
    if (index > 0) {
      fileLabel = ", "   this.filename; 
    }
    $("#s1").append("<a href='https://example.com/rest/v10/DocumentLinks/"   this.id   "/file/uploadfile?force_download=1amp;platform=base'>"   fileLabel   "</a>");
  

Вы ищете «добавить», а не «html». Вы также могли бы настроить переменную fileLabel так, чтобы она не включала запятую в тег A, но это хорошее место для начала.

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

1. Я думаю, вы поняли это по-другому, или я, возможно, не объяснил это должным образом. На самом деле для каждого имени файла также существует отдельный идентификатор. Таким образом, тег должен повторяться несколько раз в отношении имен файлов и идентификаторов.

2. Тег A повторяется несколько раз с разными именами идентификаторами?