标签: js错误

  • 前端出现Uncaught SyntaxError: missing ) after argument list 的原因及处理方式

    最近想吧百度网盘里面的资源能方便的分享出来,于是开通了网盘的开放平台,由于灯塔阅读后台是做的二开,为了遵循缘来的开发方式使用了无刷新调用。

    但是在点击标题名称想打开下一级列表时候报告出一个错误“Uncaught SyntaxError: missing ) after argument list”

    最初的写法是:

    CodeGoods.filenameFormatter = function (value,row,index) {
        $("#nav-path").html(row.parent_path);
        var str= '';
       if(row.server_filename){
           str += '<a onclick="CodeGoods.openPath('+row.path+')">'+row.server_filename+'</a>';
       }
       return str;
    };

    结果能输出如下:

    <tbody>
    <tr data-index=”0″> …………</tr>
    <tr data-index=”1″>
    <td class=”bs-checkbox “>
    <input data-index=”1″ name=”btSelectItem” type=”checkbox”></td>
    <td style=”text-align: left; vertical-align: middle; “>
    <a onclick=”CodeGoods.openPath(/-=- 少儿教育资源 -=-/【素质教育】假日博物馆·中国通史·1~7季 共200集 [www.dengtayuedu.com])”>【素质教育】假日博物馆·中国通史·1~7季 共200集 [www.dengtayuedu.com]</a></td>
    <td style=”text-align: left; vertical-align: middle; “>-</td>
    <td style=”text-align: center; vertical-align: middle; “>-</td>
    <td style=”text-align: center; vertical-align: middle; “>…………</td>
    </tr>
    </tbody>

    但是在点击链接的时候就会出现标题所属的错误。

    之后经过仔细的排查找到原因是:js方法传递参数时,如果参数是string类型,需要在参数前后加“”

    于是修改代码后为:

    CodeGoods.filenameFormatter = function (value,row,index) {
        $("#nav-path").html(row.parent_path);
        var str= '';
       if(row.server_filename){
           str += '<a onclick="CodeGoods.openPath(\''+row.path+'\')">'+row.server_filename+'</a>';
       }
       return str;
    };

     

    至此解决,留贴备忘。