Ich fühle mich wie die .each() Methode funktioniert nicht wirklich. Hier ist mein Code:jQuery. Jede Methode gibt den letzten Wert zurück
function makeHTML(data) {
console.info(data.categories);
$(data).each(function() {
let createButton = `
<div class="col-md-6">
<button type="button" class="btn btn-default">
<a href="${data.categories.category.id}"
target="_blank">${data.categories.category.title}</a>
</button>
</div>
`;
document.getElementById('table').innerHTML = createButton;
});
}
$(document).ready(function() {
$.ajax({
type: 'GET',
contentType: "application/json; charset=utf-8",
url: "json/data.json",
dataType: "json",
success: makeHTML,
error: function (result) {
console.error(result);
}
});
});
Es ist nur der letzte Satz in der json Rückkehr, die wie folgt aussieht:
{
"categories": {
"category": {
"title": "Something",
"id": 1
},
"category": {
"title": "Something Else",
"id": 2
}
}
}
Ich habe versucht, das Hinzufügen Debugger; unmittelbar nach dem innerHTML = createButton; um die Schleife zu beobachten, aber es geht nur einmal in jQuery. Es ist komisch. Ich weiß nicht, was ich falsch mache.
Was ist der Zweck der einzelnen? Ich sehe nicht, dass Sie irgendwelche Parameter innerhalb des Callbacks verwenden ... Wären 'data.categories' nicht immer dasselbe? – elclanrs
'categories' ist ein Objekt mit der Eigenschaft' category' _twice_. – robertklep
Wie vorgeschlagen, möchten Sie wahrscheinlich, dass "categories" ein Array ist. – robertklep