循环使用ES6模板

时间:2018-02-26 17:26:57

标签: javascript ecmascript-6

为什么浏览器会在模板中抱怨}?

更新:答案是“;”所以浏览器说错了。 Update2:仍然无法正常工作,因为foreach什么都不返回。 Update3:我知道使用地图不是我的问题。

  <!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>

1 个答案:

答案 0 :(得分:1)

这样做怎么样,

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;

forEach方法不返回任何内容。您应map,因为您希望返回一个数组。