Javascript 使用ES6模板循环
为什么浏览器抱怨模板中缺少} 更新:答案是“;”所以浏览器说错了。 Update2:仍然不工作,因为foreach不返回任何内容。 更新3:我知道如何使用地图,这不是我的问题Javascript 使用ES6模板循环,javascript,ecmascript-6,Javascript,Ecmascript 6,为什么浏览器抱怨模板中缺少} 更新:答案是“;”所以浏览器说错了。 Update2:仍然不工作,因为foreach不返回任何内容。 更新3:我知道如何使用地图,这不是我的问题 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="test">
</div>
<script>
let names = ["a", "b"];
template = `<table>
${names.forEach(name => {
`<TR><TD>${name}</TD></TR>`}
);
}
</table>
`;
let div = document.getElementById("test");
div.innerHTML = template;
</script>
</body>
</html>
试验
让名称=[“a”,“b”];
模板=`
${names.forEach(name=>{
`${name}`}
);
}
`;
设div=document.getElementById(“测试”);
div.innerHTML=模板;
这样做怎么样
let names = ["a", "b"];
template = `<table>
${names.map(name => `<TR><TD>${name}</TD></TR>`)}
</table>
`;
console.log(template);
let div = document.getElementById("test");
div.innerHTML = template;
let name=[“a”,“b”];
模板=`
${names.map(name=>`${name}`)}
`;
控制台日志(模板);
设div=document.getElementById(“测试”);
div.innerHTML=模板;
forEach
方法不返回任何内容。您应该map
,因为您希望返回一个数组。因为您的模板文本中缺少一个}。最后,@senojoeht这是我的问题:我在模板中看不到任何缺失的}literal@csmckelvey我数了数,每一个都有两个,因为你有一个额外的代码>。下一步你会发现它不能做你想让它做的事情,但我认为这是一个单独的问题。是的,对不起,这是分号,我知道我可以用map。但在这里,我想理解为什么foreach的语法不起作用啊,好吧,但map也会返回“,”这使事情变得复杂,因为我必须摆脱“,:(真的有办法使用foreach吗?.join(“”)会删除逗号。我知道,但我仍然想知道foreach是否有办法,或者是否真的不可能:)您可以使用forEach
,但随后需要手动将推入一个数组并使用该数组。查看