Nach dem Konvertieren eines Arrays von Namen in einem Array von URL-Links für Benutzer online und offline und nur Namen für geschlossene Konten ["https://link_1","https://link_2",name(for closed account),"https//link_3",...]
durch die $ .map-Methode und die .getJSON innerhalb dessen.
Ich versuche, die $ .each-Methode mit einer Bedingung innerhalb wieder anzuwenden, also wenn das Element mit "http" beginnt, habe ich .getJSON Methode angewendet, um mit dem JSON-Objekt des Elements (Link) zu arbeiten und summieren html die Werte ihrer Eigenschaften (zB html + = json.name); Wenn das Element nicht mit "http" beginnt, addiere nur den Wert des Elements (z. B. html + = Wert). Es funktioniert nicht; Die html-Variable übernimmt index und value innerhalb von jQuery.each, nicht jedoch das json-Objekt der verschachtelten .getJSON-Methode. Wo ich verloren habe?
channels=["https://link1","https://link2","name(for closed account)",....];
var html="";
$.each(channels,function(index,value){
// for elements that are links
if(value.substring(0,4)=="http"){
$.getJSON(value,function(json){
html+=json.name;
});
}
// for elements that are not links
else {
html+= value;
}
});
beste Vermutung ist, Sie versuchen, 'html' zu verwenden, bevor Ajax getan. Wichtig zu erkennen, dass Ajax asynchron ist. Wirklich nicht klar, was ein bestimmtes Problem ist ... innerhalb der 'each' oder mit den Daten – charlietfl
Kann einfach nicht finden, was das Problem ist! Ich denke, dass Ihr Code ordnungsgemäß ausgeführt werden kann, außer der Reihenfolge des Werts von "html" –