您的位置:首页 > Web前端 > JavaScript

JavaScript传参时类型错误Uncaught ReferenceError js传递的参数未定义

2017-12-30 18:09 567 查看
上次写代码时碰到一个类型错误问题,在数据传参中浏览器报了以下这个错误:



一开始还以为是不能不能传递中文的原因,试验了英文结果也是一样的。

后来发现其实是在传参的过程中字符被当成是变量了,所以才会报出未定义的错误。

做了一个简单版的代码,有需要的朋友可以借鉴下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>

<div id="d1"></div>

<script>
var json=[
{id: 1, num: "中文"},
{id: 2, num: "english"}
];

var html="";

for(var i=0;i<2;i++){
//        ECMAScript 6 语法  不兼容IE9及以下
//        html+=`<!--<button onclick="adc('${json[i].num}')">测试</button>-->`

//        兼容性较高
html+="<button onclick=adc('"+json[i].num+"')>测试</button>";
}

d1.innerHTML+=html;

function adc(c) {
console.log(c);
}

</script>
</body>
</html>


其实从理论上理解比较简单,既然字符串是被当做变量传递,那么我们就直接把这个传递的“变量”改成字符串就可以了

就酱~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐