有可能用JavaScript来做到这一点 - 你基本上是提供给用户的浏览器与一群件以及如何从这些片段构建页面的配方。但是,这会让用户感觉页面变慢,因为他们必须加载页面,然后等待浏览器执行您的指令。不过,有些情况下这绝对是一个很好的解决方案,如果您有兴趣,我建议您研究一下像Handlebars这样的JS模板引擎,这样可以更轻松地完成此操作。 @ Mike-C的回答很好地描述了如何在没有模板引擎的情况下做到这一点。
对于一个非常简单的情况下,像你描述,我建议使用PHP。你可以做这样的功能:
<?php
function renderBlockWrapper($blockWrapperContents) {
include('blockwrapper.html.php');
}
?>
然后在blockwrapper.html.php *你可以有:
<p class="blockwrapper"><?php echo $blockWrapperContents ?></p>
最后,在你的基础文件,你可以创建许多块包装元素像这样:
<?php renderBlockWrapper('Hello world'); ?>
<?php renderBlockWrapper('Hello again'); ?>
<?php renderBlockWrapper('Here I am a third time!'); ?>
这将输出
<p class="blockwrapper">Hello world</p>
<p class="blockwrapper">Hello again</p>
<p class="blockwrapper">Here I am a third time!</p>
*如果您还不知道这一点:如果您有一种类型的文件生成不同类型的文件来合并它们的文件结尾,这是一种常见惯例。所以.html.php表示一个生成HTML文件的PHP文件。
好吧,我想你的问题的唯一答案是,“是的,你可以做这样的事情JavaScript或PHP。”你要怎么做取决于你当前如何构建页面,变量如何变化,如何驱动输出的差异等等。你现在真正要求的是“可以做到”答案是“是”。 – David
我写了一个答案,但只知道这是许多人之一。如果您在服务器端或客户端进行模板化,并且如果您打算随时扩展此项目,那么您需要查看模板引擎或使用KnockoutJS之类的东西符合您的需求。 –
你应该尝试AngularJS。易于学习,并真正减少HTML代码 – AleOtero93