javascript - JS中模板字符串中的HTML元素

标签 javascript html ecmascript-6

我在模板字符串中添加 HTML 元素时遇到问题。我想在我的 <li> 中添加新行元素,但是 <br>被解释为字符串。

let movieDescription = document.createTextNode(`${moviesData[i].title} <br> ${moviesData[i].year} <br> ${moviesData[i].genre} <br>${moviesData[i].summary}`);

如何添加 <br>模板字符串中的元素?

最佳答案

如您所知,<br>是 HTML 不是文本。因此,您需要解析模板文字才能正确呈现换行符。最常见的方法是使用属性 .innerHTML ,虽然我读了很多 postsblogs关于它有多糟糕,我从来没有遇到过问题。在此示例中,我们使用 insertAdjacentHTML() (注意模板文字有 <div><hr> ):

var movieDescription = `
<hr>
<div>Title: ${moviesData[i].title}</div> 
<div>Year: ${moviesData[i].year}</div> 
<div>Genre: ${moviesData[i].genre}</div> 
<div>Summary: ${moviesData[i].summary}</div>
<hr>`;

 document.querySelector('.dock').innerHTML = movieDescription;

另一种方法是 insertAdjacentHTML() .就像innerHTML服用类固醇。

优点:

  • 它比 innerHTML 更快更安全

  • 它允许我们明确地确定插入应该与目标元素相关的位置:

    • beforebegin : 插入 HTML <div>target element</div>

    • afterbegin : <div> 插入 HTML target element</div>

    • beforeend : <div>target element 插入 HTML </div>

    • afterend : <div>target element</div> 插入的 HTML

  • 它不会覆盖像 innerHTML 这样的内容

缺点:

  • 很冗长。

演示

var dock = document.querySelector('.dock');
var i;
var moviesData = [{
  title: 'Pulp Fiction',
  year: '1994',
  genre: 'Drama-Crime',
  summary: "You will know , my name is the Lord, when I lay my vengance upon thee!"
}, {
  title: 'Reservoir Dogs',
  year: '1992',
  genre: 'Drama-Crime',
  summary: "Clowns to the left of me, jokers to the right! Here I am stuck in the middle with you"
}];

for (i = 0; i < moviesData.length; i++) {

  var movieDescription = `
<hr>
<div>Title: ${moviesData[i].title}</div> 
<div>Year: ${moviesData[i].year}</div> 
<div>Genre: ${moviesData[i].genre}</div> 
<div>Summary: ${moviesData[i].summary}</div>
<hr>`;

  dock.insertAdjacentHTML('beforeend', movieDescription);
}
<div class='dock'></div>

关于javascript - JS中模板字符串中的HTML元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955013/

相关文章:

javascript - 如何禁用 Angular ui-grid 中特定列的调整大小

javascript - 当另一个 span 元素包含特定文本时删除同级 div

JavaScript 请求对象 - 将键作为变量转换为字符串

javascript - es6 相当于下划线 findWhere

Javascript Cookies 通过正则表达式名称获取

javascript - 基本 NodeJS 需要语法

javascript - Accordion 故障排除

javascript - 是否可以避免通过输入在 URL 中添加?#?

javascript - 为 d3 中的旭日加载内部 JSON 数据而不是从外部资源/文件

javascript - 填充图和填充图的区别