如何将一个html代码块分配给一个javascript变量

jam*_*mex 34 html javascript

将一段html代码存储到javascript变量的语法是什么?

<div class='saved' >
<div >test.test</div> <div class='remove'>[Remove]</div></div>
Run Code Online (Sandbox Code Playgroud)

我想将上面的代码分配给变量'test'

var test = "<div class='saved' >
<div >test.test</div> <div class='remove'>[Remove]</div></div>";
Run Code Online (Sandbox Code Playgroud)

但它不起作用,这是分配代码的正确语法?

TIA

小智 50

问候!我知道这是一篇较旧的帖子,但我在搜索"javascript add large block of html as variable"时通过Google找到了它.我以为我会发布一个替代解决方案.

首先,我建议在变量本身周围使用单引号...这样可以更容易在实际的HTML代码中保留双引号.

如果要保持对代码的格式感,可以使用反斜杠来分隔行:

var code = '<div class="my-class"> \
        <h1>The Header</h1> \
        <p>The paragraph of text</p> \
        <div class="my-quote"> \
            <p>The quote I\'d like to put in a div</p> \
        </div> \
    </div>';
Run Code Online (Sandbox Code Playgroud)

注意:您显然需要转义代码中的任何单引号(例如,在最后一个'p'标记内)

无论如何,我希望能帮助其他可能正在寻找相同答案的人...干杯!

  • 使用这种插入额外空格的方法时要小心.特别是如果这个javascript严重嵌套. (2认同)

dra*_*nHR 34

 var test = "<div class='saved' >"+
 "<div >test.test</div> <div class='remove'>[Remove]</div></div>";
Run Code Online (Sandbox Code Playgroud)

如果需要换行,可以添加"\n".


小智 17

我们可以使用反引号(``)而不会出现任何错误.例如: <div>"test"<div>

我们可以在ES6 javascript标准中引入的反引号中存储大模板(HTML)

无需逃避任何特殊字符

如果没有反引号...我们需要通过附加反斜杠()来转义字符,例如:"\"test \""

  • 这是我整个星期学到的最好的东西。我只是……它……太美了! (3认同)
  • 这是一个出色的 2017 年答案。更多信息可以在 MDN [这里.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) 上找到 (2认同)
  • 这对我来说是个很好的解决方案,但IE11,https://caniuse.com/#feat=template-literals不支持模板文字. (2认同)

Ali*_*ahi 5

我建议使用mustache模板框架工作.https://github.com/janl/mustache.js/.

<body>
       ....................
       <!--Put your html variable in a script and set the type to "x-tmpl-mustache"-->
       <script id="template" type="x-tmpl-mustache">
           <div class='saved' >
           <div >test.test</div> <div class='remove'>[Remove]</div></div>
    </script>
</body>

  //You can use it without jquery.
  var template = $('#template').html();
  var rendered = Mustache.render(template);
  $('#target').html(rendered);
Run Code Online (Sandbox Code Playgroud)

为什么我推荐这个?

不久之后,您将尝试替换HTML变量的某些部分并使其变为动态.将此作为HTML处理String将是一个令人头疼的问题.这里是Moustache魔术可以帮助你的地方.

<script id="template" type="x-tmpl-mustache">
 <div class='remove'>  {{ name }}! </div> ....
</script>
Run Code Online (Sandbox Code Playgroud)

 var template = $('#template').html();
 // You can pass dynamic template values
  var rendered = Mustache.render(template, {name: "Luke"});
  $('#target').html(rendered);
Run Code Online (Sandbox Code Playgroud)

还有很多功能.