1

我正在尝试将 HTML 存储在 Javascript 变量中,以便将来易于阅读和编辑。

我已经这样做了:

var form = [
    "<fieldset>",
    "  <label></label>",
    "</fieldset>" ].join("\n");

唯一的事情是我希望它比将来更容易编辑,可能将它存储在 PHP 中的一个变量中(如果这更容易的话),然后对其进行编码或其他东西。

将会有更多的HTML

4

4 回答 4

1

在 PHP 变量中:

$form =<<<FORM
<fieldset>
    <label></label>
</fieldset>
FORM;

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

于 2012-04-25T18:08:42.803 回答
0

如果您提到的 PHP 选项是您想要的方式,那么一个选项(非常易读且易于编辑)将类似于:

$out = '<div>';
    $out .= '<p>Hello, World</p>';
$out .= '</div>;

最大的优势(我认为)是这使您可以自由缩进以提高可读性。显然是一个非常简单的例子,但希望这一点得到了理解。

于 2012-04-25T18:03:21.033 回答
0

您可以通过在每行添加反斜杠来编写多行字符串:

在 JavaScript 中创建多行字符串

于 2012-04-25T18:03:30.207 回答
0

我会使用 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" );

您不必使用变量,但它比尝试手动构建它要干净得多。

于 2012-04-25T18:18:54.480 回答