2017-12-29 8 views
1

Hallo Leute, mein erster Post bei stackoverflow.Syntaxfehler, unerkannter Ausdruck Jquery

Ich habe einen sehr kleinen Webservice, der json liefert.

{ 
    "status": 1, 
    "info": [{ 
     "URLREST": 0, 
     "URLGEPLANT": 0, 
     "URLGESAMT": 35 
    }], 
    "anwesend": "Name 1#Name 2#Name 3#Name 4#" 
} 

Und in meinem JavaScript bekam ich einen Syntax Error. Ich denke, ich bin zu dumm. Stimmt etwas nicht mit meinem Json? Oder mit meinem JQuery Code?

Error: Syntax error, unrecognized expression: Name 1#Name 2#Name 3#Name 4#

jquery-3.2.1.min.js:2:13370

$.ajax({ 
    url: url, 
    dataType: 'json', 
    success: function(data) { 

     $(data.info).each(function(index,value) {  
      document.getElementById('URLREST').innerHTML = value.URLREST; 
      document.getElementById('URLGEPLANT').innerHTML = value.URLGEPLANT; 
      document.getElementById('URLGESAMT').innerHTML = value.URLGESAMT;  
     }); 

     $(data.anwesend).each(function(index,value) { 
      document.getElementById('anwesend').innerHTML = value; 
     }); 
    } 
}); 
+0

'anwesend' ist kein Array. Warum benutzt du '.each' dort? – Shubham

+0

'" anwesend ":" Name 1 # Name 2 # Name 3 # Name 4 # "' - Warum ist das nicht ein richtiges _array_? (Das ist der Grund, warum Sie auch den Fehler bekommen, nehme ich an - weil Sie versuchen, 'each' zu verwenden, um über einen String-Wert zu" iterieren ". Sie müssten das zuerst an den' # '-Zeichen teilen - aber wieder ein Array würde mehr Sinn an diesem Ort.) – CBroe

+0

Manchmal habe ich einen Knoten in meinem Gehirn. ein arry macht mehr sinn ich werde es jetzt ändern. – Andy

Antwort

0

Weil der letzte Wert von "anwesend": "Name 1 2 # # Name Name 3 # 4 # Bezeichnung" Zeichenfolge ist.

aber Sie haben die Methode $ .each angewendet

$(data.anwesend).each(function(index,value) { 
      document.getElementById('anwesend').innerHTML = value; 
     }); 

über diese Zeichenfolge, die nicht gültig ist.

, wenn Sie eine Schleife über ‚anwesend‘ machen wollen, dann haben Sie Array über api

{ 
    "status": 1, 
    "info": [{ 
     "URLREST": 0, 
     "URLGEPLANT": 0, 
     "URLGESAMT": 35 
    }], 
    "anwesend": ["Name 1","Name 2","Name 3","Name 4"] 
} 
1

Das Argument von .each() senden muss ein Array oder ein CSS-Selektor, aber Sie haben $('Name 1#Name 2#Name 3#Name 4#').each(..., was nicht ist ein Array oder ein korrekter CSS-Selektor

0

Der Selektor Sie für jQuery ist ungültig verwenden:

$('Name 1#Name 2#Name 3#Name 4#'); 

, weil es mit Hash-Tag endet. Selektor folgende gibt keine Fehler:

$('Name 1#Name 2#Name 3#Name 4#a'); 

Mehr zu den jQuery ID-Selektor here.

Verwandte Themen