Ich habe Probleme, durch zurückgegebene JSON Ergebnis durchlaufen. Wenn das Ergebnis einigen Anforderungen entspricht, dann fügen Sie sie an ein <li>
Element an. Ja, ich lerne immer noch :)Schleife durch getJson Ergebnis
Das zurückgegebene Ergebnis sieht so aus [text][text2][text3]bla,blabla, blabla
. Ich möchte nur die Elemente in Klammern greifen. Danach müssen diese Klammern entfernt werden und das gereinigte Ergebnis sollte in einem <li>
Element platziert werden.
Also, was ich habe, ist dies:
$.getJSON('some-url?format=json', function(e) {
var keywords = e.shop.keywords; //result = [text][text2][text3]bla,blabla, blabla
$(keywords).each(function(i, keys) {
var keys = keywords.match(/\[(.*?)\]/); //matches if text is between brackets
if (keys) {
var submatch = keys[1];
}
});
$('.some-div ul').html('<li>'+submatch+'</li>');
});
es wie oben tun gibt mir einen Fehler Error: Syntax error, unrecognized expression: [text][text2][text3]
Was ich mir falsch?
sollten Sie ein Array 'jeder()' Funktion übergeben ... –
'keywords' ist eine Zeichenfolge, nicht wahr? Wenn Sie eine Zeichenfolge in '$()' einschließen, wird sie nicht automatisch in ein Array konvertiert, und selbst wenn dies der Fall wäre, wäre die von Ihnen verwendete Syntax falsch. Siehe API http://api.jquery.com/jquery.each/ wie man '$ .each()' –
verwendet, wenn '[text] [text2] [text3] bla, blabla, blabla' dein JSON ist vollständig vermurkst/ungültig, und ich frage mich, ob dein Skript keinen Fehler ausgelöst hat. * Edit: * Es scheint, dass dies genau der Fehler ist, den Sie bekommen. ** behebe die Daten, die vom Server zurückgegeben werden, um gültig zu sein JSON ** – Thomas