这玩意儿说来简单,但真实太太太太容易报错了!!而且每一次都调好久!在这里总结一下,希望能帮助以后提升效率。
Table of Contents
1 传入多个参数时,unexpected end of input
1 传入多个参数时,unexpected end of input
这个错误多出现在我想要传入多个参数的时候
今天我做一个功能,一定要往onclick当中传两个值,但无论是我将这两个值作为两个参数传递,还是将它们拼接成一个字符串,都报同样的错误:unexpected end of input
代码如下:
js:
-
var a = '123';
-
var b = 'def';
-
var test_input = '"'+a+'","'+b+'"';
-
return '<a onclick="test('+test_input+')" ><span class="glyphicon glyphicon-edit"></span></a>';
-
-
//....
-
-
-
-
function test(a, b){
-
console.log('just for test');
-
console.log(a);
-
console.log(b);
-
}
生成的html:
当我点击时:
我一开始以为是我的参数太长了(我的实际代码中,参数是一个比较长的字符串),导致它在生成为html之后折行了??这很扯,实际上也的确不是这个原因。
经过一番搜索,一位前辈的资料给了我灵感:
/chyin1024/article/details/53495409
emmm。。。
然后我把code换成了这样:
var test_input = ''+a+','+b+'';
(其他不变)
再试一下,不报unexpected end of input了。
但遇到了另外一个问题:
也就是说,浏览器将def当成了一个变量,而非参数。
这个问题,我觉得可以将多个参数拼接成一个字符串来解决。但这并不standard。
双引号会引起冲突是吧。
那改成单引号?
-
var test_input = '\''+a+'\',\''+b+'\'';
-
// other no change
再试一下:
console打印:
问题解决