2017-12-29 23 views
1

こんにちは、みんな私のポストのstackoverflowで。シンタックスエラー、認識できない式Jquery

私はjsonを提供する非常にリットルのWebサービスを持っています。

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

JavaScriptでシンタックスエラーが発生しました。私は愚かに思う。私のJsonに何か問題がありますか?または私のJQueryコードで?

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'は配列ではありません。なぜあなたは '.each'をそこで使っていますか? – Shubham

+0

'' anwesend ': "名前1#名前2#名前3#名前4#" ' - これはなぜ適切な_array_で始まらないのですか?文字列の値に対して "each"を使って "反復"しようとしているので、エラーが発生している理由です。最初に '# '文字で分割する必要があります。配列はこの場所でより意味をなさないでしょう。) – CBroe

+0

時々私は私の脳に結び目を持っています。私は今それを変更するより感覚的なarryを作る。 – Andy

答えて

0

"anwesend" の最後の値ので "3#名称4#1名#名2#名"は、文字列です。

しかし、あなたが有効ではありません、その文字列の上に$ .eachメソッドに

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

を適用しています。

あなたが「anwesend」の上にループを作りたいならば、あなたは、API

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

を経由して、アレイを送信する必要がされていない、.each()の引数が配列またはCSSセレクタである必要がありますが、$('Name 1#Name 2#Name 3#Name 4#').each(...を持っています配列や正しいCSSセレクタ使用するセレクタはjQueryのために無効である

0

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

それはハッシュタグで終わるので。セレクタに続いて、エラーを与えない:jQueryのIDセレクタhereについて

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

より。

関連する問題