Итерация данных, полученных из ajax / json
Ниже приведен тип данных, которые я получаю через ajax.
[{"model": "blogapp.articles", "pk": 1, "fields": {"title": "Rainbow Buildings in Tokyo", "slug": "Rainbow-Buildings-in-Tokyo"}}, {"model": "blogapp.articles", "pk": 2, "fields": {"title": "4 Cool Cube Facades", "slug": "4-Cool-Cube-Facades"}}]
Как я могу перебрать эти данные, используя .each
, чтобы получить название и slug для каждой записи?
Нижеприведенный код дает мне синтаксическую ошибку в данных.
app.js
$(document).ready(function () {
$(".tag-nav-links").on("click", function (e) {
e.stopPropagation();
return $.ajax({
type: "POST",
url: "",
dataType: "json",
data: { filter: `${e.target.textContent}` },
success: function (data) {
var html = "";
$(data).each(function (index, value) {
html += "<h4>{{" + value.title + "}}</h4>";
});
$("trial").append(html);
},
});
});
});
Функция jQuery
(которую вы используете вот так: $(data)
) - это не то, что вам нужно. (Возможно, вы имели в виду $.each(data, ...)
, но в наши дни в этом нет необходимости). Если data
действительно является массивом, как показано на рисунке, просто используйте map
для него, а затем соедините результат с пустой строкой:
success: function (data) {
$("trial").append(data.map(value => {
return "<h4>{{" + value.fields.title + "]]</h4>";
}).join(""));
},