语法错误,无法识别的表达式Jquery

时间:2017-12-29 12:10:09

标签: javascript jquery json ajax

嘿,我在stackoverflow上发帖了。

我有一个提供json的小型Web服务。

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

在我的JavaScript中,我遇到语法错误。如何查明错误是在我的Json还是我的JQuery代码中?

  

错误:语法错误,无法识别的表达式:名称1#名称2#名称3#名称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;
        });
    }
}); 

3 个答案:

答案 0 :(得分:1)

因为" anwesend"的最后一个值:"名称1#名称2#名称3#名称4#" 是字符串。

但是你已经应用了$ .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 :(得分:1)

.each()的参数必须是数组或CSS选择器,但你有$('Name 1#Name 2#Name 3#Name 4#').each(...,它不是数组或正确的CSS选择器

答案 2 :(得分:0)

您使用的选择器对jQuery无效:

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

因为它以hash标记结束。跟随选择器没有错误:

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

有关jQuery ID选择器here的更多信息。