Javascript 模板文本函数传递问题

Javascript 模板文本函数传递问题,javascript,html,json,ecmascript-6,template-literals,Javascript,Html,Json,Ecmascript 6,Template Literals,快速总结。我创建了一个JSON文件,其中保存了一些数据(这没问题,显示得很好),从中我创建了一个JavaScript函数,将所述JSON数据导出到HTML(也很好) 问题在于我在下面的函数中创建的每个div中添加了onclick函数,我可以传递并记录一个数字,但由于某些原因,它对字符串不起作用 函数returnHTML(){ //要将JSON信息附加到的HTML元素 var div=document.getElementById('list'); //要测试onClick的变量 var test

快速总结。我创建了一个JSON文件,其中保存了一些数据(这没问题,显示得很好),从中我创建了一个JavaScript函数,将所述JSON数据导出到HTML(也很好)

问题在于我在下面的函数中创建的每个div中添加了
onclick
函数,我可以传递并记录一个数字,但由于某些原因,它对字符串不起作用

函数returnHTML(){
//要将JSON信息附加到的HTML元素
var div=document.getElementById('list');
//要测试onClick的变量
var test=“test”;
获取(“./test.json”)
.然后(功能(res){
返回res.json();
})
.then(功能(数据){
对于(var i=0;i<(data.games.fps).长度;i++){
变量标记=`
${data.games.fps[i].img}
${data.games.fps[i].name}
`;
div.innerHTML=div.innerHTML+标记;
}
})
}
//用于测试变量传递的随机函数。
函数myFunction(x){
console.log(“单击:+x”);
}
returnHTML();
我希望通过控制台的输出为:

Clicked: TEST

但是,我得到:
ReferenceError:找不到变量:TEST

您的代码正在输出
onclick=“myFunction(TEST)”
,因为这是生成HTML时
TEST
变量的值

添加双引号(或单引号),这将解决问题:

<div class='box' id="${data.games.fps[i].name}" onclick="myFunction('${test}')">

您的代码正在输出
onclick=“myFunction(TEST)”
,因为这是生成HTML时
TEST
变量的值

添加双引号(或单引号),这将解决问题:

<div class='box' id="${data.games.fps[i].name}" onclick="myFunction('${test}')">


如果我设置“var test=2”,我会得到预期的输出(单击:2)。如果我设置“var test=2”,我会得到预期的输出(单击:2)。谢谢,我知道这是一个简单的语法问题!没问题。如果有帮助的话,请随意将此标记为可见性的答案。谢谢,我知道这是一个简单的语法问题!没问题。如果有帮助的话,请随意将此标记为可见性的答案。