可以说是前面选项卡的一个延伸或者说是另一个实现方法,选项卡改变的是div,而简易日历改变的是div里的内容innerHTML首先先介绍一下innerHTML,是HTML和JS里最有用的东西。 innerHTML是什么? 栗子: var oDiv =...
可以说是前面选项卡的一个延伸或者说是另一个实现方法,选项卡改变的是div,而简易日历改变的是div里的内容
innerHTML
首先先介绍一下innerHTML,是HTML和JS里最有用的东西。
innerHTML是什么?
栗子:
var oDiv = document.getElementById('div1');
oDiv.innerHTML = "...";
oDiv.innerHTML代表什么?
代表div标签中间的内容,就是下面栗子中的 省略号内容。
<div id=div1>
...
</div>
说到这里就出现有意思的地方,既然innerHTML代表的是标签内的内容,那么就可以往里放HTML语句。
比如说上面的栗子:
oDiv.innerHTML = "<h1>标题1</h1>";
这里就相当于在div中添写了 <h1>标题1</h1> 这条HTML语句,打开审查元素会发现div块中确实添加了这条语句
<div id="div1">
<h1>标题1</h1>
</div>
言归正传
简易日历要实现的操作:
当鼠标移动到月份上时,月份的框的样式会改变,且底下的div内的文字会改变
参考前一篇的选项卡会发现基础原理差不多,主要是掌握怎么改变div的内容,这就用到了上面说的innerHTML,还有拼接符“+”
原理就是 现创建一个数组将要改变的内容存进去,再使用this.index读取数组。
详细代码
<script>
window.onload = function () {
const oTab = document.getElementById('tab');
const oLi = oTab.getElementsByTagName('li');
const oText = oTab.getElementsByTagName('div')[0];
const arr = [
"出去玩鸭!",
"不出去玩鸭!",
"上学鸭!",
"学习!",
"考试鸭!",
"放假鸭!",]
for (let i=0; i<oLi.length; i++) {
oLi[i].index = i;
oLi[i].onmouseover = function () {
for (let i=0; i<oLi.length; i++) {
oLi[i].className = '';
}
this.className = 'active';
oText.innerHTML = '<h2>' + (this.index + 1) + '月</h2><p>' + arr[this.index] + '</p>';
};
}
};
</script>
<body>
<div id="tab">
<ul>
<li class="active">
<h1>1</h1>
<p>JAN</p>
</li>
<li>
<h1>2</h1>
<p>FER</p>
</li>
<li>
<h1>3</h1>
<p>MAR</p>
</li>
<li>
<h1>4</h1>
<p>APR</p>
</li>
<li>
<h1>5</h1>
<p>MAY</p>
</li>
<li>
<h1>6</h1>
<p>TUN</p>
</li>
</ul>
<div id="text">
<h2>1月</h2>
<p>出去玩鸭!</p>
</div>
</div>
</body>
本文标题为:简易日历(innerHTML)
基础教程推荐
- JS前端广告拦截实现原理解析 2024-04-22
- CSS3的几个标签速记(推荐) 2024-04-07
- 浅析canvas元素的html尺寸和css尺寸对元素视觉的影响 2024-04-26
- this[] 指的是什么内容 讨论 2023-11-30
- vue离线环境如何安装脚手架vue-cli 2025-01-19
- Ajax实现动态加载数据 2023-02-01
- 关于文字内容过长,导致文本内容超出html 标签宽度的解决方法之自动换行 2023-10-28
- 浅谈Vue2和Vue3的数据响应 2023-10-08
- 基于Vue制作组织架构树组件 2024-04-08
- js禁止页面刷新与后退的方法 2024-01-08
