javascript - 在同一页面上按需提供 HTML 片段

标签 javascript html

我想要做的是,在不更改站点位置(例如从 example.com/snippet1example.com/snippet)的情况下,使用选择和只有 html 和 js (如果可能的话)。我想避免加载整个文档(例如,避免加载 10 个“片段”,每个片段加载大约 500 行,而是选择我要加载的一个,同时删除其余部分)。

这是我想到的选择/选择器的示例,我可以使用 js 添加监听器

<select>
    <option value="1">Snippet 1</option>
    <option value="2">Snippet 2</option>
</select>

片段 1:

<div class="s1">
    <p>something</p>
    <img src="s1.jpg"/>
</div>

片段 2:

<div id="s2">
    <div class="s2">
        <iframe src=""></iframe>
    </div>
</div>

这与更改类或 id 无关,因为它们之间的结构可能不同。其目的是尝试使其像 PHP 中的 include 一样工作。

最佳答案

您可以通过使用 jQuery load 并从外部 html 文件请求片段来轻松实现此目的。

这是一个 super 简单的示例,其中您的代码片段文件名必须与选择选项值相对应,但您可以为更复杂的文件名或位置添加 map 。

jQuery 加载引用:http://api.jquery.com/load/

主要js

$('select').on('change', function(event) {
  $('#content').load('snippet' + event.target.value + '.html');
});

index.html

<select>
    <option value="1">Snippet 1</option>
    <option value="2">Snippet 2</option>
</select>
<div id="content"></div>

snippet1.html

<div class="s1">
    <p>something</p>
    <img src="s1.jpg"/>
</div>

snippet2.html

<div id="s2">
    <div class="s2">
        <iframe src=""></iframe>
    </div>
</div>

关于javascript - 在同一页面上按需提供 HTML 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53511531/

相关文章:

javascript - 如何在 Canvas 上实时使用多重混合模式?

html - 如何在斜线上对齐文本?

html - 使用 Twitter Bootstrap header 下拉菜单

html - Div inside overflow ="auto"自动根据内容调整宽度

html - CSS 选择器不起作用?

javascript - 带有打开页面的 JQuery PopUp 的 Material Design HTML5 (.html)

javascript - Google map 搜索框自动完成 Javascript

java - 使用ajax发送用户名和密码安全吗?

javascript - 使用 Handler.ashx 获取图像

javascript - 内部 div 的 Jquery CSS 已覆盖不透明度的颜色