【问题标题】:Syntax error, unrecognized expression Jquery语法错误,无法识别的表达式 Jquery
【发布时间】:2017-12-29 12:10:08
【问题描述】:

大家好,我在 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#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;
        });
    }
}); 

【问题讨论】:

  • anwesend 不是数组。你为什么在那里使用.each
  • "anwesend": "Name 1#Name 2#Name 3#Name 4#" - 为什么这不是一个合适的 array 开始? (这就是为什么你也得到错误,我想 - 因为你试图使用 each 来“迭代”一个字符串值。你需要先在 # 字符处拆分它 - 但同样,一个数组在这个地方会更有意义。)
  • 有时我脑子里有一个结。 arry 更有意义,我现在就改变它。
  • 您不能在字符串中应用每个函数。使用 data.info.split(" ") 转换它,然后应用 $.each

标签: javascript jquery json ajax


【解决方案1】:

因为 "anwesend": "Name 1#Name 2#Name 3#Name 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"]
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      因为它以井号标签结尾。以下选择器没有错误:

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

      更多关于 jQuery ID 选择器here

      【讨论】:

        猜你喜欢
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        相关资源
        最近更新 更多