js怎样把三个body同类型的文件合并,使网页展示时不同出现,而是切换出现
时间: 2024-11-30 11:17:54 浏览: 10
在JavaScript中,如果你想合并三个相同的HTML body内容,并通过某种方式动态地切换显示,你可以利用DOM操作或者隐藏/显示元素的技术。这里有一个简单的例子:
首先,假设你有三个包含相同结构的HTML片段,分别保存在`content1.html`, `content2.html`, 和 `content3.html` 文件中:
```html
<!-- content1.html -->
<body>
<div id="switchable-content">这是第一部分内容</div>
</body>
<!-- content2.html -->
<body>
<div id="switchable-content">这是第二部分内容</div>
</body>
<!-- content3.html -->
<body>
<div id="switchable-content">这是第三部分内容</div>
</body>
```
然后,在你的主HTML页面或者JavaScript代码中,你可以这样做:
1. 引入或读取外部文件的内容:
```javascript
function loadContent(file) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open('GET', file, true);
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr.responseText);
} else {
reject('Error loading ' + file);
}
};
xhr.onerror = function() {
reject('Error loading ' + file);
};
xhr.send();
});
}
loadContent('content1.html')
.then(content => document.getElementById('switchable-content').innerHTML = content)
.catch(err => console.error(err));
```
2. 使用数组存储内容,并创建一个函数切换内容:
```javascript
const contents = ['content1.html', 'content2.html', 'content3.html'];
let currentContentIndex = 0;
function switchContent() {
loadContent(contents[currentContentIndex])
.then(currentContent => {
document.getElementById('switchable-content').innerHTML = currentContent;
currentContentIndex = (currentContentIndex + 1) % contents.length; // 循环切换
})
.catch(err => console.error(err));
}
// 初始加载第一个内容
switchContent();
```
每次调用`switchContent()`函数时,就会切换并显示下一个内容。如果到达最后一个内容,会回到第一个。
阅读全文