【问题标题】:Uncaught SyntaxError: Unexpected token if in jquery未捕获的 SyntaxError:如果在 jquery 中,则出现意外的标记
【发布时间】:2019-11-14 19:05:19
【问题描述】:

我创建了一个运行良好的自动完成建议框,但问题是当我使用 if and elseconsole.log() 时,它在我的控制台中显示错误,即 Uncaught SyntaxError: Unexpected token if 我不知道为什么?我该如何解决这个问题?请帮帮我。

代码:

$("#tag").tokenInput("<?php echo base_url(); ?>search_tag", {
    onResult: function(results){
        $.each(results, function (index, value) {
            value.name = if(value.client_img==''){ "<img src='<?php echo base_url(); ?>assets/user.png'>" }else{ "<img src='<?php echo base_url(); ?>assets/client_img/"+value.client_img+"'>" }+value.fname+" "+value.lname;
        });
        //return results;
        console.log(results);
    }
});

【问题讨论】:

  • if 块不返回值;你不能在这样的作业的右侧使用它。您应该搜索“三元运算符”,它会执行您正在尝试做的事情。

标签: javascript php jquery codeigniter autocomplete


【解决方案1】:

if 应该更早,以便 if/else 块的结果应用于 value.name 属性。

$.each(results, function (index, value) {
  if(value.client_img==''){ 
  value.name ="<img src='<?php echo base_url(); ?>assets/user.png'>" 
  }else{
  value.name = "<img src='<?php echo base_url(); ?>assets/client_img/"+value.client_img+"'>" +value.fname+" "+value.lname;
  }
});

或使用三元运算符

$.each(results, function (index, value) {
  value.client_img==''
   ? value.name ="<img src='<?php echo base_url(); ?>assets/user.png'>" 
   : value.name = "<img src='<?php echo base_url(); ?>assets/client_img/"+value.client_img+"'>" +value.fname+" "+value.lname;
});

【讨论】:

  • 谢谢,@gavgrif 我还有一个问题,当我点击任何自动建议时,它也会获得一张图片,但我想要选择任何value.name后的唯一名称@
  • 对不起@darkshadow - 如果没有看到涉及的代码,我无法谈论这个。
  • @darkshadow 我认为}+value.fname+" "+value.lname 行不通。它会给你额外的}语法错误。
  • @darkshadow 目前您没有收到我提到的上述错误,因为它似乎总是执行if 块。
  • @AlivetoDie - 感谢您选择它 - 这是复制/粘贴我没有更改的 OP 的保留形式 - 我已经从解决方案的两个选项中删除了“}” - 干杯:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 2021-05-29
  • 1970-01-01
相关资源
最近更新 更多