Ich habe einen API-Aufruf, der durch ein Array von Benutzern analysiert, während einige Elemente der JSON-Daten an Divs mit einer for-Schleife anhängen. Mein Problem ist, dass ich eine if-Anweisung innerhalb eines anderen API-Aufrufs geschachtelt habe, um nach dem Stream-Status zu suchen. Wenn stream null ist, sollte ein img angehängt werden und umgekehrt.If-Anweisung mit dynamisch angehängten divs
Das Problem ist, dass die if-Anweisung durch das Array von Benutzern zu analysieren scheint, aber dann alle Ergebnisse der Anweisung an jede Benutzerzeile anfügt. Ich versuche, die if-Anweisung einzeln auf jeden Benutzer im Array anzuwenden, und füge dann das richtige img an. Ich gehe davon aus, dass jedes dynamisch angehängte div dieselbe Klasse hat, auf die die if-Anweisung abzielt. Lass mich wissen, was ihr denkt.
$(document).ready(function() {
var users = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
for (var i = 0; i < users.length; i++) {
// channel call for info, name, logo
$.getJSON('https://wind-bow.gomix.me/twitch-api/channels/' + users[i] + '?callback=?', function(datax) {
console.log(datax);
$('#streams-list').append(
'<div class="row">' +
'<div class="col-md-1">' +
'<img src=' + datax.logo + ' class="stream-icon">' +
'</div>' +
'<div class="col-md-9 stream-row">' +
'<li class="list-group-item stream-list">' + datax.name + '</li>' +
'</div>' +
'<div class="col-md-1">' +
'<li class="list-group-item status-row"></li>' +
'</div>' +
'<div class="list-group-item col-md-1 icon-shell status-symbol" >' +
'</div>' +
'</div>'
);
});
}
var online = [];
var offline = [];
for (var x = 0; x < users.length; x++) {
// stream call for status
$.getJSON('https://wind-bow.gomix.me/twitch-api/streams/' + users[x] + '?callback=?', function(data) {
var status = data.stream;
console.log(status);
if (status == null) {
$('.status-symbol').append(
'<img src="icons/ic_highlight_off_black_48dp_2x.png" class="status">'
)
} else {
$('.status-symbol').append(
'<img src="icons/ic_done_black_48dp_2x.png" class="status">'
)
}
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
In Ihrem Fall können Sie den zweiten '$ .getJSON' innerhalb des ersten' $ .getJSON' Erfolgsmanagers aufrufen! –
@ A.Akram das wird nur funktionieren, wenn er die Bilder verkettet, die Verwendung des aktuellen Append wird die gleichen Ergebnisse geben – madalinivascu