2017-11-30 1 views
1

Ich baue einen Wiki-Ergebnis-Viewer und versuche "No Result" zu drucken, wenn das json-Daten-Array leer ist. Aber mein Code zeigt es nicht richtig an. Bitte siehe unten:Wie zeige ich "no result" an, wenn ein leeres Array empfangen wurde

form.onsubmit = function() { 
    $("#results").html(""); 
    $.ajax({ 
    url: "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + form.keyword.value + "&limit=5&namespace=0&format=json", 
    dataType: 'jsonp', 
    success: function(json) { 
     results = json[1] 
     if (results) { 
     for (var i = 0; i < json[1].length; i++) { 
      $("#results").append(
      "<div class=\"results\"><div class=\"title\">" + json[1][i] + "</div>" + 
      "<div class=\"description\">" + json[2][i] + 
      "<a target=\"_blank\"href=\"" + json[3][i] + "\"><div class=\"wikilink\"> Go to article </div></a>" + 
      "</div></div>"); 
     } 
     } else { 
     $("#results").html("No results"); 
     } 
    } 
    }); 
}; 

Bin ich fehlt etwas? Ich danke dir sehr!

+3

gibt es nicht so etwas wie 'for() {} else {}' – charlietfl

+0

die for-Schleife ist in der if (Ergebnis){}. Ich dachte, ich kann eine Schleife hineinlegen? – bom

+1

sicher kannst du aber nicht das 'else' * innen * das' if() ' – charlietfl

Antwort

3

Sie müssen prüfen, ob das Ergebnis Array leer

if (results && results.length > 0) 

statt

+1

Oder nur' if (results && results.length) '. ;-) – RobG

+0

@RobG, kannst du mir den Unterschied zwischen 'if (result)' und 'if (results && results.length)' sagen? Ich dachte 'if (result)' bedeutet result = true, was bedeutet, dass es json-Daten gibt, die ich erhalte. – bom

+1

@bom if (Ergebnisse) wird ausgeführt, wenn die Ergebnisse nicht null, falsch, undefiniert oder 0 sind. In diesem Fall ist das Ergebnis nicht null (leeres Array). Dasselbe gilt für die Ergebnisse. Weil es verwirrend ist. Also denke ich> 0 ist besser. Wenn Sie sicher sind, dass Ihr Dienst immer ein Array zurückgibt, wenn (results.length> 0) ausreichend ist. –

Verwandte Themen