JavaScript基础回顾知识点记录5-事件使用和dom操作(介绍基本使用)
- js 中 事件和dom
- onload事件,在页面加载完成之后才会触发。 (一般放在js执行之前)
- 点击事件示例
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <!-- 1、属性内触发点击事件 --> <!-- <button id="btn" onclick="alert('我是点击事件')">我是一个按钮!</button> --> <!-- 2、js绑定点击事件(推荐) --> <button id="btn">我是一个按钮!</button> </body> <script type="text/javascript"> window.onload = function() { //获取到点击对象 var btn = document.getElementById("btn"); var html = btn.innerHTML; console.log(html); btn.onclick = function() { alert("我是回调"); } } </script> </html>
- 获取元素节点方法(通过document对象调用)
- getElementById():通过id属性获取一个元素节点对象
- getElementsByTagName():通过标签名获取一组元素节点对象
- getElementsByName():通过name属性获取一组元素节点对象
- 使用事件和操作dom实现图片切换
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="notice"> </div> <img src="img/1.png" alt="暂无"> <div class="btn_style"> <button type="button" id="prev">上一张</button> <button type="button" id="next">下一张</button> </div> </body> <script type="text/javascript"> window.onload = function() { var img = document.getElementsByTagName("img")[0]; var prev = document.getElementById("prev"); var next = document.getElementById("next"); var index = 0; var img_arr = ["img/1.png", "img/2.png", "img/3.png", "img/4.png", "img/5.png", "img/6.png", "img/7.png", "img/8.png" ]; var notice = document.getElementById("notice"); notice.innerHTML = `一共${img_arr.length}张,当前第${index+1}张!` console.log(img_arr.length); prev.onclick = function() { index--; if (index < 0) { index = img_arr.length - 1; } notice.innerHTML = `一共${img_arr.length}张,当前第${index+1}张!` img.src = img_arr[index]; } next.onclick = function() { index++; if (index > img_arr.length - 1) { index = 0; } notice.innerHTML = `一共${img_arr.length}张,当前第${index+1}张!` img.src = img_arr[index]; } } </script> </html>
- 获取元素节点的子节点(通过具体的元素节点调用)
- getElementsByTagName():返回当前节点的指定标签名后代节点 (方法)
- childNodes:表示当前节点的所以子节点,包含文本节点,标签之间各一行也算一个节点。(属性)
- firstChild:表示当前节点的第一个节点 (属性)
- lastChild: 表示当前节点的最后一个节点 (属性)
- childNodes:在IE8及以下,不会计算文本节点。
- 获取父节点和兄弟节点
- parentNode: 表示当前节点的父节点
- previousSibling: 表示当前节点的前一个兄弟节点
- nextSibling: 表示当前节点的后一个兄弟节点
- 节点操作
- creatElement(element):创建一个新的元素节点
- appendChild():在节点列表后 添加一个新的子节点
- removeChild():从一个给定元素中删除子节点
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <button id="btn">点我添加</button> <ul id="u1"> <li><a href="javascript:;" class="link">点我1</a></li> <li><a href="javascript:;" class="link">点我2</a></li> <li><a href="javascript:;" class="link">点我3</a></li> </ul> <button id="btn2">点我两下删除最后一个</button> </body> <script type="text/javascript"> var btn = document.getElementById('btn'); var btn2 = document.getElementByID('btn2'); var ul = document.getElementById('u1'); btn.onclick = function() { var li = document.createElement('li'); li.innerHTML = "<a href='javascript:;' class='link'>点我</a>"; ul.appendChild(li); } btn2.onclick = function() { //标签之间的换行也算一个节点,所以删除最后一个节点是先删了标签换行那个节点。 //需要删除文本节点,实际需要点击两下删除 ul.removeChild(ul.lastChild); } </script> </html>
- js 实现点击全选/反选/全不选操作
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form method="post" action=""> 你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选 <br /> <input type="checkbox" name="items" value="足球">足球 <input type="checkbox" name="items" value="篮球">篮球 <input type="checkbox" name="items" value="羽毛球">羽毛球 <input type="checkbox" name="items" value="乒乓球">乒乓球 <br /> <input type="button" id="checkedAllBtn" value="全选"> <input type="button" id="checkedNoBtn" value="全不选"> <input type="button" id="checkedRevBtn" value="反选"> <input type="button" id="sendBtn" value="提交"> </form> </body> <script type="text/javascript"> var checkedAllBox = document.getElementById("checkedAllBox"); var checkedAllBtn = document.getElementById("checkedAllBtn"); var checkedNoBtn = document.getElementById("checkedNoBtn"); var checkedRevBtn = document.getElementById("checkedRevBtn"); var items = document.getElementsByName("items"); checkedAllBox.onclick = function() { for (var i = 0; i < items.length; i++) { items[i].checked = checkedAllBox.checked; } } checkedAllBtn.onclick = function() { for (var i = 0; i < items.length; i++) { items[i].checked = true; checkedAllBox.checked = true; } } checkedNoBtn.onclick = function() { for (var i = 0; i < items.length; i++) { items[i].checked = false; checkedAllBox.checked = false; } } checkedRevBtn.onclick = function() { for (var i = 0; i < items.length; i++) { // if (items[i].checked) { // items[i].checked = false; // } else { // items[i].checked = true; // } items[i].checked = !items[i].checked; } checkedAllBox.checked = !checkedAllBox.checked; } for (var i = 0; i < items.length; i++) { items[i].onclick = function() { checkedAllBox.checked = true; for (var j = 0; j < items.length; j++) { if (!items[j].checked) { checkedAllBox.checked = false; break; } } } } </script> </html>
- js 中 return false 可以取消默认行为,比如a标签的默认跳转。在a标签的href中写入 javascript:;也可以阻止跳转
- js 中 confirm() 方法,点击确认返回true ,取消返回false
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构