执行函数时,能为函数中的参数去拼接变量吗?

例如要执行一个函数
func(1, 'http://xxx.com', '3.0.0');

<a onclick="func(1, 'http://xxx.com', '3.0.0)"></a>

如果我要把变量uid拼接到第二个参数后面

<a onclick="func(1, 'http://xxx.com'" + uid + ", '3.0.0)">

貌似会报错,还是需要转义?求解

报错信息:Uncaught SyntaxError: Unexpected token ILLEGAL

阅读 4.9k
8 个回答

如果题主想偷懒的话,可以这样:

<a onclick="eval('func(1, \'http://xxx.com\' + uid, 3.0.0)')">
<a onclick="func(1, 'http://xxx.com" + uid + "', '3.0.0')">

事件回调函数这样写不好啦~~~~
使用addEventListener方法不好么

<a onclick="func(1, 'http://xxx.com" + uid + "', '3.0.0')">

这样写不会报错,但是应该会出现解析错误,最后代码并不是这种你想要的结构,

<body><a '3.0.0')"="" "',="" uid="" +="" onclick="func(1, 'http://xxx.com"></a></body>

就这样了。

"func(1, 'http://xxx.com"
uid
"', '3.0.0')"

这是3段,HTML并不认识两个双引号之间出现的 +uid+ 是个什么鬼

如果想在这种结构里传入一个js变量,似乎没有办法 ,我本人没遇到过,暂时也想不出来
如果变量是一个后端语言传进来的,即可以在HTML解析的时候变成一个真正的数值,那这么写没问题。

clipboard.png

clipboard.png

并没有什么问题啊。 楼主画蛇添竹了, 一定要主意 HTML 语法的问题。

不要HTML跟Javascript用混了

另外,楼主的报错,是3.0.0后面,少了一个单引号。

先贴报错信息, 智商过100都知道是我先提醒的题主以后,题主才附上的报错信息,-1之前带上脑子。

<a onclick="func(1, 'http://xxx.com/" + uid + "', '3.0.0')">

你这个定义在script里面的变量怎么可能在 html里面识别。这种情况请用addEventListener。

推荐问题