Python全栈之学习JS(3)
程序员文章站
2022-03-07 14:33:30
目录1. dom节点1.1 dom节点获取1.2 节点元素层级关系1.3 修改_清空内容1.4 隐藏显示密码效果2. 全选_反选_不选2.1 全选_反选_不选2.2 js控制css的相关属性2.3 j...
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>
上一篇: vue-router单页面路由
下一篇: Etcd入门指南——安装