解决:Uncaught SyntaxError: Unexpected identifier js字符串拼接传参数报错

2018-12-8    分类: 前端资源

js 对象 字符串 报错 传参数 传参 报错 对象

 

案例:

$('body').append('<button onclick="xx('+aa+')">点我</button>');

像以上的js把对象参数aa跟字符串拼接在一起是会报错的。传数值、字符串不会。

 

如果一定要传对象参数可以这么做:

$(function () {

      $('#test').click(function () {
            window._this=$(this);  //解决1:如果是传$(this)复杂的对象,可以将对象赋值到全局中

            //解决2:如果是这种json格式可以使用以下方法转换。
            var aa= JSON.stringify( [1,2,"ff",{aa:123,bb:[1,2,"gg"]}] ).replace(/\"/g,"'")

            $('body').append('<button onclick="xx('+aa+')">点我</button>');

      });

});
function xx(aa) {
    console.log(_this)
    console.log(aa)
}