Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串中的javascript转义换行符_Javascript_Html - Fatal编程技术网

字符串中的javascript转义换行符

字符串中的javascript转义换行符,javascript,html,Javascript,Html,我必须在模板中定义一个变量,这样我的模板渲染器将替换其中的值。然后,我必须在一些javascript函数中使用这个变量 变量本身就是一些html,我希望能够对其进行格式化,使其看起来像html,而不是一个无法读取的超长单行字符串 <script> var myHTML = " <div> content </div>" </script> var myHTML=” 内容 " 我能看到的唯一让它工作的方法就是这样做(真的很难看)

我必须在模板中定义一个变量,这样我的模板渲染器将替换其中的值。然后,我必须在一些javascript函数中使用这个变量

变量本身就是一些html,我希望能够对其进行格式化,使其看起来像html,而不是一个无法读取的超长单行字符串

<script>
var myHTML = "
  <div>
    content
  </div>"
</script>

var myHTML=”
内容
"
我能看到的唯一让它工作的方法就是这样做(真的很难看)


var myHTML=“”
+""
+“内容”
+""

有没有一种友好的方法可以做到这一点?

在源代码中插入的任何新行字符都是模板文本的一部分。使用普通字符串,您必须使用以下语法才能获得:

var myHTML='\n content\n';

log(myHTML)
一种常用且友好的方法是将模板字符串放入自己的
元素中,type属性设置为
text/x-something
,因为javascript可以访问该元素,但浏览器不会显示该元素

这允许您像通常那样编写HTML(以及模板标记),而不需要转义或特殊处理换行符

此方法的工作演示:

//获取模板字符串
var myHTML=document.getElementById(“template1”).innerHTML;
//检查myHTML是否包含模板字符串
log(myHTML)

内容
  • 您只需将反斜杠“\”放在字符串的每一行(最后一行除外)的末尾,然后按enter键进入换行符
  • 就你而言:

    <script> 
     var myHTML = '\
          <div>\
            content\
          </div>\
         ';
    </script> 
    
    
    var myHTML=\
    \
    内容\
    \
    ';
    

  • 谢谢我在搜索javascript字符串文本,但没有找到任何东西。为什么不将整个模板放在一个文件“template.html”中,然后您可以使用ajax httrequest将整个内容放在一个变量中?这可以使整个内容更具可读性,更易于更新。
    <script> 
     var myHTML = '\
          <div>\
            content\
          </div>\
         ';
    </script>