将 html 转换为 JS 文件中的 html 字符串

Dev*_*evy 14 html javascript

我想通过 JS 创建一些 html,因此我需要在 JS 文件中编写 html,如:

function createHtmlSection() {
    return "<li class=\"chapter up-wrapper-btn\">" +
        "<div>" +
        "<button><i class=\"fa fa-plus\" onclick=\"addSection('up',this)\"></i></button>" +
        "<label contenteditable=\"true\">section 1</label>" +
        "</div>" +
        "</li>";
}
Run Code Online (Sandbox Code Playgroud)

是否有工具或一些快捷方式来创建这种类型的 html 字符串?

我的意思是,在这种情况下,我需要手动输入所有这些 html。与+并添加所需的"标志。

可以转换的东西:

<li class="chapter up-wrapper-btn">
    <div>
       <button><i class="fa fa-plus" onclick="addSection('up',this)"></i></button>
        <label contenteditable="true">section 1</label>
     </div>
</li>
Run Code Online (Sandbox Code Playgroud)

到我需要手动输入的第一个字符串

Ori*_*ori 7

您可以使用模板文字(注意反引号)。文字支持多行,您不需要转义引号(您需要转义反引号)。

`<li class="chapter up-wrapper-btn">
    <div>
       <button><i class="fa fa-plus" onclick="addSection('up',this)"></i></button>
        <label contenteditable="true">section 1</label>
     </div>
</li>`
Run Code Online (Sandbox Code Playgroud)

例子:

`<li class="chapter up-wrapper-btn">
    <div>
       <button><i class="fa fa-plus" onclick="addSection('up',this)"></i></button>
        <label contenteditable="true">section 1</label>
     </div>
</li>`
Run Code Online (Sandbox Code Playgroud)
function createHtmlSection() {
  return `
    <li class="chapter up-wrapper-btn">
        <div>
           <button><i class="fa fa-plus" onclick="addSection('up',this)"></i></button>
            <label contenteditable="true">section 1</label>
         </div>
    </li>
  `;
}


document.querySelector('#root')
  .innerHTML = createHtmlSection();
Run Code Online (Sandbox Code Playgroud)

您还可以将参数传递给函数,并使用表达式插值将它们插入到字符串中:

<ul id="root"></ul>
Run Code Online (Sandbox Code Playgroud)
function createHtmlSection(label) {
  return `
    <li class="chapter up-wrapper-btn">
        <div>
           <button><i class="fa fa-plus" onclick="addSection('up',this)"></i></button>
            <label contenteditable="true">${label}</label>
         </div>
    </li>
  `;
}


document.querySelector('#root')
  .innerHTML = createHtmlSection('!!! section !!!');
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,但重要的是要说这是 ES6 语法,并非所有浏览器都支持。因此,您需要像 [Babel](https://babeljs.io/) 这样的东西来将代码编译为浏览器兼容的 JavaScript (ES5)。 (3认同)
  • 这就是我添加 MDN 链接的原因。它们的底部有一个兼容性表。目前唯一不支持模板文字的浏览器是 IE。 (2认同)