前端基础之原生js事件绑定案例

原生js事件绑定

  • 开关灯案例
<script>
<div id="d1" class="c1 bg_green bg_red"></div>
<button id="d2">变色</button>
<script>
let btnEle = document.getElementById('d2')
let divEle = document.getElementById('d1')
btnEle.onclick = function () { // 绑定点击事件
// 动态的修改div标签的类属性
divEle.classList.toggle('bg_red')
}
</script>
  • input框获取焦点失去焦点案例
<input type="text" value="老板,几位?" id="d1">
<script>
let iEle = document.getElementById('d1')
// 获取焦点事件
iEle.onfocus = function () {
// 将input框内部值去除
iEle.value = ''
// 点value就是获取,等号赋值就是设置值
}
// 失去焦点事件
iEle.onblur = function () {
// 给input标签重写赋值
iEle.value = '没钱送客'
}
</script>
  • 实时展示当前时间
<input type="text" id="d1" style="display: block; height: 50px;width: 200px">
<button id="d2">开始</button>
<button id="d3">结束</button>
<script>
let t = null
let inputEle = document.getElementById('d1')
let startBtnEle = document.getElementById('d2')
let endBtnEle = document.getElementById('d3')
// 1.访问页面之后,将访问的时间展示到input框中
// 2.动态展示当前时间
// 3.页面上加两个按钮,一个开始一个结束
function showTime(){
let currentTime = new Date();
inputEle.value = currentTime.toLocaleString()
}
startBtnEle.onclick = function () {
// 限制定时器只能开一个
if (!t) {
t = setInterval(showTime,1000) // 每点击一次开始就会开设一个定时器,而t只指代最后一个
}
}
endBtnEle.onclick = function () {
clearInterval(t)
// 还应该将t重置为空
t = null
}
</script>
  • 省市联动
<body>
<select name="" id="d1">
<option value="" selected disabled>--请选择--</option>
</select>
<select name="" id="d2"></select>
<script>
let proEle = document.getElementById('d1')
let cityEle = document.getElementById('d2')
// 先模拟省市数据
data = {
"安徽省":['合肥','芜湖','马鞍山'],
"江苏省":['南京','徐州','苏州'],
"浙江省":['杭州','义乌','宁波'],
"北京市":['朝阳区','海淀区','昌平区'],
"上海市":['黄浦区','青浦区','杨浦区']
};
// for循环获取省
for (let key in data){
// 将省的信息做成一个个option标签,添加到第一个select框中
// 1.创建option标签
let opEle = document.createElement('option')
// 2.设置文本
opEle.innerText = key
// 3.设置value
opEle.value = key // <option value="省">省</option>
// 4.将创建好的option标签添加到第一个select中
proEle.appendChild(opEle)
}
// 文本域变化事件 change事件
proEle.onchange = function () {
// 先获取到用户选择的省
let currentPro = proEle.value
// 获取对应的市信息
let currentCityList = data[currentPro]
// 清空市select中所有的option
cityEle.innerHTML = ''
// 自己再加一个请选择
let s = "<option disabled selected>--请选择--</option>"
cityEle.innerHTML = s
// for循环所有的市,渲染到第二个select中
for (let i=0;i<currentCityList.length;i++){
let currentCity = currentCityList[i]
// 1.创建option标签
let opEle = document.createElement('option')
// 2.设置文本
opEle.innerText = currentCity
// 3.设置value
opEle.value = currentCity
// 4.将创建好的option标签添加到第一个select中
cityEle.appendChild(opEle)
}
}
</script>
</body>
posted @   Xiao0101  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示

目录