一个更优雅的多行 JavaScript 字符串的方法。
一个更优雅的多行 JavaScript 字符串的方法。
我所知道的不使用+=打印长字符串的唯一方法是使用反斜杠\\。太丑陋了!
是否有任何方法可以使长字符串不受影响?PHP有$foo = \'\'\'长多行字符串\'\'\';我想在JavaScript中实现这个功能!
有没有更好的方法在JavaScript中打印长的多行字符串?
admin 更改状态以发布 2023年5月24日
一般来说,答案是:不在语言语法范畴内。尽管正如Ken在他的答案中指出的那样,有很多的解决方法(我个人的方法是通过AJAX加载文件)。在您的具体情况下,我更喜欢创建一个HTML构造函数,这样您就可以使用Javascript对象字面量来定义HTML结构。类似于:
var longString = makeHTML([{ div : { id : "lol", children : [{ div : { id : "otherstuff", children : [{ text : "test content. maybe some code" }] }] }]
我发现这样更容易处理。此外,这将允许您在需要避免字符串引用的情况下使用真实的函数文字:
makeHTML([{ span : { onclick : function (event) {/* do something */} } }]);
注意:makeHTML的实现留给读者作为练习
额外的答案:
在我的硬盘上快速扫描后找到了一些旧代码。它与我上面提出的方法有点不同,所以我想分享一下,以说明您可以编写此类函数的许多方法之一。Javascript是一种非常灵活的语言,没有什么强制您以一种或另一种方式编写代码。选择您感觉最自然和舒适的API,然后编写代码来实现它。
这是代码:
function makeElement (tag, spec, children) { var el = document.createElement(tag); for (var n in spec) { if (n == 'style') { setStyle(el,spec[n]); } else { el[n] = spec[n]; } } if (children && children.length) { for (var i=0; i
使用它的方式是:
document.getElementById('foo').appendChild( makeElement(div,{id:"lol"},[ makeElement(div,{id:"otherstuff"},[ makeText("test content. maybe some code") ]) ]) ); /* implementation of makeText is * left as exercise for the reader */