Python全栈之学习JS(3)
目录
- 1. dom节点
- 1.1 dom节点获取
- 1.2 节点元素层级关系
- 1.3 修改_清空内容
- 1.4 隐藏显示密码效果
- 2. 全选_反选_不选
- 2.1 全选_反选_不选
- 2.2 js控制css的相关属性
- 2.3 js事件
- 3. 模态框
1. dom节点
1.1 dom节点获取
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DOM document object model 文档顶级节点</title> </head> <body> <div id="box"> <p class="p1" >张三</p> <p class="p2">李四</p> <p class="p3">赵刘</p> <p name="ceshi1"></p> <p name="ceshi1"></p> </div> <div> <input type="text" name="username" /> <input type="password" name="pwd" /> <p1>112233</p1> <box>55666</box> </div> <script> console.log(document) // ### 1 通过id获取div节点对象 var box = document.getElementById("box"); console.log(box); // ### 2 通过类名获取节点对象 [返回的是数组] var p2 = document.getElementsByClassName("p2"); console.log(p2 , typeof(p2)); // 获取李四节点对象 lisi = p2[0]; console.log(lisi) // 获取王五节点对象 wangwu = p2[1]; console.log(wangwu); // ### 3.通过标签获取节点对象 [返回的是数组] var p = document.getElementsByTagName("p"); console.log(p) console.log(p[1]) // ### 4.通过标签身上的name属性 [返回的是数组] 一般用在input表单中 var ceshi1 = document.getElementsByName("username")[0]; console.log(ceshi1); // ### 通过css选择器获取对应的元素节点 // ### 5.querySelector ,只获取找到的第一个; var p1 = document.querySelector(".p1"); console.log(p1) var box = document.querySelector("#box"); console.log(box) // input表单有两个,但是只获取第一个; var input = document.querySelector("input"); console.log(input); // ### 6.querySelectorAll 获取所有找到的元素节点,返回数组 var all = document.querySelectorAll("input[name=username]")[0]; console.log(all); </script> </body> </html>
1.2 节点元素层级关系
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>节点元素层级关系</title> </head> <body> <div id="box"> <p> <input type="text" name="username" /> <input type="password" name="pwd" /> </p> <p class="p1" >张三</p> <p class="p2">李四</p> <p class="p3">赵刘</p> <p name="ceshi1"></p> <p name="ceshi1"></p> </div> <script> // ### 获取对应的节点元素 console.log(document) console.log(document.documentElement); // html console.log(document.documentElement.children) // 找html里面所有的子节点children var html_children = document.documentElement.children console.log(html_children) // head , body body = html_children[1]; console.log(body); // head , body var div = body.children[0] console.log(div); var p0 = div.children[0] console.log(p0) var input = p0.children console.log(input) var input1 = input[0] console.log(input1) // 获取下一个节点对象nextSibling console.log(input1.nextSibling.nextSibling); // 获取下一个元素节点对象 nextElementSibling var input2 = input1.nextElementSibling; console.log(input2); // 获取上一个节点对象 previousSibling console.log(input2.previousSibling) // 获取上一个元素节点对象 previousElementSibling console.log(input2.previousElementSibling) // 获取input2父节点元素对象; console.log(input2.parentElement) </script> </body> </html>
1.3 修改_清空内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DOM 修改/清空内容</title> </head> <body> <button onclick="func1()">修改内容</button> <button onclick="func2()">清空内容</button> <div id="box" style="border:solid 1px red;"> <p>我是最帅的最有钱的<a href="#">最有味的</a>男人</p> </div> <script> // innerHTML 获取标签里面所有内容 [标签 + 文本] // innerText 获取标签里面所有字符串[文本] var p = document.querySelector("#box p"); // console.log把数据展现在控制台 console.log(p); // document.write 把数据以字符串的形式展现在浏览器 document.write(p); // 点击button1触发如下任务 , 修改 function func1(){ var content = p.innerHTML; var content = p.innerText; console.log(content); // p.innerHTML = `我被修改了 <a href=''>点我中大奖</a>...1`; p.innerText = `我被修改了 <a href=''>点我中大奖</a>...2`; } // 点击button2触发如下任务 , 清空 function func2(){ p.innerHTML = ''; } </script> </body> </html>
1.4 隐藏显示密码效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>隐藏显示密码效果</title> </head> <body> <input type="password" name="pwd" value="111" class="abcd" /> <button onclick="change()" id="btn" >点我显示密码</button> <div> <img src="images/oneal1.jpg" /> </div> <script> // 效果1: 显示隐藏密码 var password = document.querySelector("input[name=pwd]") console.log(password); console.log(password.type); console.log(password.name); console.log(password.value); console.log(password.className) function change(){ var btn = document.querySelector("#btn") console.log(btn); if(password.type=="password"){ password.type = "text"; btn.innerHTML = "点我隐藏密码"; }else{ password.type= "password"; btn.innerHTML = "点我显示密码"; } } // 效果2:点击换图片 var img = document.querySelector("img"); console.log(img) img.onclick = function(){ console.log(img.src) // http://127.0.0.1:5500/images/oneal1.jpg var arr = img.src.split("/") imgname = arr[arr.length - 1] console.log(arr , imgname); if(imgname == "oneal1.jpg"){ img.src = "images/bakeli.jpg"; }else{ img.src = "images/oneal1.jpg"; } } </script> </body> </html>![请添加图片描述](https://img-blog.csdnimg.cn/28488ad590884492b9b9aabe1e7eeada.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54as5aSc5rOh5p645p2e,size_20,color_FFFFFF,t_70,g_se,x_16)
2. 全选_反选_不选
2.1 全选_反选_不选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>全选,反选,不选</title> <style> * {margin:0px;padding:0px;} ul {list-style: none;} #ul1 li {float:left;} #ul1 li button {width:80px;height:30px;} #ul1 li button:hover {background-color: tan;} #ul2 {clear:both;} </style> </head> <body> <ul id="ul1"> <li><button>全选</button></li> <li><button>不选</button></li> <li><button>反选</button></li> </ul> <ul id="ul2"> <li><input type="checkbox" /> 看电影 </li> <li><input type="checkbox" /> 吃面 </li> <li><input type="checkbox" /> 烫头 </li> <li><input type="checkbox" /> 跑步 </li> <li><input type="checkbox" /> 篮球 </li> </ul> <script> // 获取btn节点对象 var btn1 = document.querySelector("#ul1 li:nth-child(1) button"); var btn2 = document.querySelector("#ul1 li:nth-child(2) button"); var btn3 = document.querySelector("#ul1 li:nth-child(3) button"); // 全选 btn1.onclick = function(){ // 获取#ul2 li 里的input /* var data_lst = document.getElementById("ul2").getElementsByTagName("input"); console.log(data_lst) */ var data_lst = document.querySelectorAll("#ul2 li input"); console.log(data_lst) // 获取数组当中每一个input节点元素对象 for(var input of data_lst){ //console.log(input.checked) // 设置节点input的checked属性为true; input.checked = true; } } // 不选 btn2.onclick = function(){ var data_lst = document.querySelectorAll("#ul2 li input"); console.log(data_lst) // 获取数组当中每一个input节点元素对象 for(var input of data_lst){ //console.log(input.checked) // 设置节点input的checked属性为true; input.checked = false; } } // 反选 btn3.onclick = function(){ var data_lst = document.querySelectorAll("#ul2 li input"); console.log(data_lst) // 获取数组当中每一个input节点元素对象 for(var input of data_lst){ if(input.checked === true){ input.checked = false; }else{ input.checked = true; } } } </script> </body> </html>
2.2 js控制css的相关属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js控制css的相关属性</title> <style> .box {border:solid 1px red;} .box_new {position: absolute; left:200px;} </style> </head> <body> <button id="box1">点击我换颜色</button> <button id="box2">点击我隐藏</button> <button id="box3">点击我显示</button> <button id="box4">点击边框换圆角</button> <button id="box5">点击加样式</button> <div class="box" style="width:300px;height:200px;background-color: yellow;font-size:40px;">你好评</div> <script> var box = document.querySelector(".box"); console.log(box); // js的dom对象获取相关的css属性 // 获取方法一 console.log(box.style.width); console.log(box.style.backgroundColor); // 获取方法二 console.log(box.style["width"]); console.log(box.style["background-color"]); console.log(box.style["font-size"]); // 获取方法三 getComputedStyle 获取该节点对象的所有样式 console.log( window.getComputedStyle(box)["font-size"] , "<===getComputedStyle===>"); console.log( window.getComputedStyle(box).fontSize , "<===getComputedStyle===>"); // 事件绑定 var box1 = document.getElementById("box1"); var box2 = document.getElementById("box2"); var box3 = document.getElementById("box3"); var box4 = document.getElementById("box4"); var box5 = document.getElementById("box5"); box1.onclick = function(){ box.style.backgroundColor = "red"; } box2.onclick = function(){ box.style.display = "none"; } box3.onclick = function(){ box.style.display = "block"; } box4.onclick = function(){ //box.style.borderRadius = "100%"; var point = 0; var t = setInterval( function(){ box.style.borderRadius = `${point}%`; if(point < 100){ point++; }else{ clearInterval(t) console.log("结束了... ") } } , 50) } /* 重点 添加样式*/ box5.onclick = function(){ // box.className = "box box_new"; box.className += " box_new"; } </script> </body> </html>
2.3 js事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js事件</title> <style> *{margin:0px;padding:0px;} .box {width:100px;height:100px;background: green;position: absolute;left:0px;} </style> </head> <body> <!-- 1.事件的静态绑定 --> <button onclick="func1()">按钮1</button> <div class="box"></div> <script> var box = document.getElementsByClassName("box")[0]; var t; console.log(box); function func1(){ var left = parseInt(window.getComputedStyle(box).left) console.log(left ,typeof(left)); // console.log(box.style.left); t = setInterval(function(){ left += 10; box.style.left = `${left}px`; } , 50) } // 2.事件的动态绑定 // onmouseover 鼠标指针悬停在指定元素上时触发 box.onmouseover = function(){ clearInterval(t); } // onmouseout 鼠标指针离开指定元素时触发 box.onmouseout = function(){ func1() } </script> </body> </html>
3. 模态框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>模态框</title> <style> .box { position:fixed; width:100%; height:100%; top:0px; background-color: greenyellow; display: none; } .content { border:solid 1px red; width:500px; height:500px; background-color:tan; margin:auto; margin-top:14%; } </style> </head> <body> <button id="login">登录</button> <div class="box"> <div class="content" > <span class="close">X</span> <br /> <span>账号: <input type="text" /></span> <br / > <span>密码: <input type="password" /></span> </div> </div> <script> var btn = document.getElementById("login"); var box = document.querySelector(".box"); var close = document.querySelector(".close"); btn.onclick = function(){ console.log(11) box.style.display = "block"; } close.onclick = function(){ box.style.display = "none"; } </script> </body> </html>
赞 (0)