四、JS操作BOM和DOM
四、JS操作BOM和DOM
1. BOM对象
BOM 即 浏览器对象模型,主要包含一下一些内容:
-
window 浏览器窗口
window.innerHeight // 获取窗口高度 window.innerWidth // 获取窗口宽度 -
navigator 浏览器常用信息
navigator.appCodeName "Mozilla" navigator.appName "Netscape" navigator.appVersion "5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36" navigator.platform "MacIntel" navigator.userAgent "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36" navigator.language "en" -
screen 屏幕
screen.availWidth // 屏幕可用宽度 2560 screen.availHeight // 屏幕可用高度 1342 -
location 当前url信息
location.hostname "localhost" location.pathname "/JavaProject/%E5%89%8D%E7%AB%AF/javascript/index.html" location.port "63342" location.protocol "http:" -
document 当前页面
2. DOM对象
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
2.1 查找元素
var x=document.getElementById("intro"); // 通过id查找 var y=x.getElementsByTagName("p"); // 通过标签名查找 var x=document.getElementsByClassName("intro"); // 通过类名查找
2.2 操作HTML
document.getElementById(id).innerHTML=新的 HTML // 修改html元素的内容 document.getElementById("image").src="landscape.jpg"; // 修改html的属性
2.3 修改CSS样式
document.getElementById("p2").style.color="blue"; // 修改颜色 document.getElementById("p2").style.fontFamily="Arial"; // 修改字体 document.getElementById("p2").style.fontSize="larger"; // 修改字号
2.4 操作元素
-
创建元素,添加元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> var para = document.createElement("p"); // 创建元素 var node = document.createTextNode("这是一个新的段落。"); // 创建内容 para.appendChild(node); // 给创建的元素添加内容 var element = document.getElementById("div1"); var child = document.getElementById("p1"); element.insertBefore(para, child); // 父元素增加子元素 </script> </head> <body> <div id="div1"> <p id="p1">这是一个段落。</p> <p id="p2">这是另外一个段落。</p> </div> </body> </html> -
移除元素
<script> var parent = document.getElementById("div1"); var child = document.getElementById("p1"); parent.removeChild(child); // 移除元素 </script>
2.5 操作表单
-
获取/更新input输入框中的值
<form action=""> 姓名<input type="text"> </form> var person = document.getElementsByTagName('input') person[0].value // 获取表单中的值 "张三" person[0].value = '李四' // 更新表单中的值 -
获取/更新radio是否被选中
<form action=""> <input type="radio" name="sex" value="man" id="man">男 <br/> <input type="radio" name="sex" value="woman" id="woman">女 </form> var sex = document.getElementById('man') sex.checked true -
提交表单数据
-
使用button的onclick提交
-
使用form的onsubmit属性提交
-
使用两个密码框,其中一个隐藏显示,并添加md5加密啊
<!--使用hidden实现--> <form action="" method="post" onsubmit="return submitInfo()"> <span>用户名</span> <input type="text" name="username" id="username"> <p> <span>密码</span> <input type="password" id="input_password"> <input type="hidden" name="password" id="md5_password" > </p> <button type="submit">登录</button> </form> <script> function submitInfo(){ let uname = document.getElementById('username'); let pwd = document.getElementById('input_password'); let md5_pwd = document.getElementById('md5_password'); md5_pwd.value = md5(pwd.value); return true; } </script>
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】博客园2025新款「AI繁忙」系列T恤上架,前往周边小店选购
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· .net clr 8年才修复的BUG,你让我损失太多了
· .NET周刊【3月第5期 2025-03-30】
· 一个神奇的JS代码,让浏览器在新的空白标签页运行我们 HTML 代码(createObjectURL
· 即时通信SSE和WebSocket对比