一、获取元素的几种方法
- getElementById、getElementsByTagName、getElementsByClassName、querySelector、querySelectorAll
- document.body、document.documentElement
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Document</title> 9 </head> 10 11 <body> 12 13 <!-- 1、通过id获取元素--> 14 <div id="idx">xxxx</div> 15 <!-- 2、通过标签名获取元素 --> 16 <ul id="ul"> 17 <li></li> 18 <li></li> 19 </ul> 20 <ol> 21 <li></li> 22 <li></li> 23 </ol> 24 <!-- 3、通过类名获取元素 --> 25 <div class="classx">sss</div> 26 <div class="classx">sss</div> 27 <script> 28 //伪数组形式输出 29 // 父元素ol,子元素li 30 /* var ols = document.getElementById('olx'); 31 console.log(olx.getElementsByTagName('li')); */ 32 33 // 1、通过id获取元素 34 //例子: document.getElementById('id') 35 var div=document.getElementById('idx'); 36 console.log(div); 37 // 获取元素的属性 38 console.dir(div); 39 // 2、通过标签名获取元素 40 // 例子:document.getElementsByTagName('li') 41 var lis=document.getElementsByTagName('li') 42 console.log(lis); 43 // 获取ul里面的li标签,返回的值为伪数组形式 44 var ul=document.getElementById('ul'); 45 var lis=ul.getElementsByTagName('li'); 46 console.log(lis); 47 // 3、通过类名获取元素 48 // 例子:document.getElementsByClassName('#name') 49 var div1=document.getElementsByClassName('classx'); 50 console.log(div1); 51 // 4、H5新增的选择器, 52 // 例子:document.querySelector('div') 53 // id加#,类加. 54 var x=document.querySelector('#idx'); 55 console.log(x); 56 var y=document.querySelector('.classx') 57 console.log(y); 58 // 获取所有li标签 59 var liz=document.querySelectorAll('li') 60 console.log(liz); 61 62 // 5、获取body元素 63 var body=document.body; 64 console.log(body); 65 // 6、获取html元素 66 var htmlx=document.documentElement; 67 console.log(htmlx); 68 </script> 69 </body> 70 71 </html>
二、事件
事件有三部分组成:事件源、事件类型、事件处理程序。
- 事件源:事件被触发的对象、是谁;
- 事件类型:如何触发、什么事件(比如鼠标点击(onclick));
- 事件处理程序:通过函数赋值方式 ;
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8 </head> 9 <body> 10 <button id="s">显示当前的时间</button> 11 <div>隐藏</div> 12 <script> 13 // 1、事件源:通过获取ID获取事件源(谁被触发) 14 var btn = document.querySelector('#s'); 15 // 2、通过鼠标点击(onclick),结果是赋值的方式 16 btn.onclick = function() { 17 alert('哟西!') 18 } 19 </script> 20 </body> 21 </html>
三、操作元素,修改属性
- innerText不识别HTML标签,不标准的形式,去掉空格和换行
- innerHTML识别HTML标签,W3W标准的形式,不去掉空格和换行
- .type、.src等等都可以进行修改,另外还有btn.disabled=true,可以让按钮失效;也可以this.disabled=true,this的指向是事件函数的调用者,
- 修改样式(.style.backgroupColor=’pink’/.style.width=’500px’)
- 显示或者隐藏图标.style.display=’none’
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Document</title> 9 <style> 10 .box { 11 background-color: pink; 12 width: 500px; 13 height: 500px; 14 } 15 </style> 16 </head> 17 18 <body> 19 <!-- 1、操作元素 --> 20 <button id="s">显示当前的时间</button> 21 <div>隐藏</div> 22 23 <!-- 2、区别 --> 24 <div> 25 <strong>xxx</strong>我爱你 26 </div> 27 <p> 28 我不爱你 29 <span>真的假的?</span> 30 </p> 31 32 <!-- 3、修改类型 --> 33 <button id="btny"></button> 34 <input type="text" id="inputx"> 35 36 <!-- 4、 --> 37 <div class="box"></div> 38 39 40 41 <script> 42 // 1、操作元素 43 // innerText方法 44 // 第一种方式点击按钮显示时间 45 var divx = document.querySelector('div'); 46 var btnx = document.getElementById('s'); 47 btnx.onclick = function () { 48 divx.innerText = getDate(); 49 } 50 function getDate() { 51 var date = new Date(); 52 var year = date.getFullYear(); 53 var month = date.getMonth() + 1; 54 var dates = date.getDate(); 55 var day = date.getDay(); 56 var hour = date.getHours(); 57 var minute = date.getMinutes(); 58 var second = date.getSeconds(); 59 return year + '年' + month + '月' + dates + '日' + '星期' + day + ' ' + hour + '时' + minute + '分' + second + '秒'; 60 } 61 // 第二种方式直接获取时间,不用点击按钮 62 var divy = document.querySelector('div'); 63 divy.innerText = getDate(); 64 65 66 // 2、两者区别 67 var divz = document.querySelector('div'); 68 // innerText不识别HTML标签,不标准的形式,去掉空格和换行。 69 divz.innerText = '<strong>xxx</strong>我爱你'; 70 // innerHTML识别HTML标签,W3W标准的形式,不去掉空格和换行。 71 divz.innerHTML = '<strong>xxx</strong>我爱你'; 72 var p = document.querySelector('p'); 73 console.log(p.innerHTML); 74 console.log(p.innerText); 75 76 // 3、修改类型,input的type,图片的src也是同样原理 77 var inputx = document.getElementById('inputx'); 78 var btny = document.getElementById('btny'); 79 // 做标记,改变flag值,进行切换,可以用于密码的显示与隐藏 80 var flag = 0; 81 btny.onclick = function () { 82 if (flag == 0) { 83 inputx.type = 'password'; 84 flag = 1; 85 } else { 86 inputx.type = 'text'; 87 flag = 0; 88 } 89 } 90 91 // 4、修改样式,JS修改style样式操作,产生的是行内样式,css权重比高 92 var diva = document.querySelector('.box'); 93 diva.onclick = function () { 94 // this指向的是diva 95 this.style.width = '200px'; 96 this.style.height = '200px'; 97 // 用驼峰命名法 98 this.style.backgroundColor = 'red'; 99 } 100 101 // 5、显示或者隐藏图标 102 // 可以直接调用.style.display='none'; 103 </script> 104 </body> 105 106 </html>
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/274193.html