我正在尝试将HTML存储在Javascript变量中,以便将来易于阅读和编辑。
我已经这样做了:
var form = [
"<fieldset>",
" <label></label>",
"</fieldset>" ].join("'n");
唯一的问题是我希望它在未来比编辑更容易,可能将其存储在 PHP 的变量中(如果这更容易的话),然后对其进行编码或其他东西。
将会有更多的HTML
在 PHP 变量中:
$form =<<<FORM
<fieldset>
<label></label>
</fieldset>
FORM;
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
如果您提到的 PHP 选项是您想要的方式,那么一个选项(非常可读且易于编辑)将是这样的:
$out = '<div>';
$out .= '<p>Hello, World</p>';
$out .= '</div>;
最大的优点(我认为)是这允许您自由缩进以提高可读性。显然这是一个非常简单的例子,但希望这一点能传达出来。
您可以通过向每行添加反斜杠来编写多行字符串:
在 JavaScript 中创建多行字符串
我会使用jQuery模板。
http://blog.reybango.com/2010/07/09/not-using-jquery-javascript-templates-youre-really-missing-out/
您的示例:
<script id="myTemplate" type="text/html">
<fieldset><label></label></fieldset>
</script>
此外,模板允许您添加变量,例如:
<script id="myTemplate" type="text/html">
<fieldset><label class="${labelclass}">${label}</label></fieldset>
</script>
将信息作为数组传入
var templateData = [
{ labelclass: "fruit", label: "orange" },
{ labelclass: "vegetable", label: "cucumber" },
{ labelclass: "animal", label: "dog" }
];
然后,您可以附加到所需的位置
$("#myTemplate").tmpl(templateData ).appendTo( "form" );
您不必使用这些变量,但它比尝试手动构造它要干净得多。