1.输入框
1-1 onchange
1-11 <input type="text" id="input"> <script> // 当输入框的内容发生改变的时候,触发 var input=document.getElementById("input"); input.onchange=function(){ console.log("hello world") } // onresize窗口大小改变的时候,会触发 window.onresize=function(){ console.log(1) } // 窗口滚动的时候会触发 window.onscroll=function(){ console.log(2) } </script>1-12 submit
1-2 onfoucs onblur(获取焦点 遗失焦点)
<input id="app" type="text"> <script> // onfocus 获取焦点 // onblur 遗失焦点 var app=document.getElementById("app"); app.onfocus=function(){ this.style.backgroundColor="green" } app.onblur=function(){ this.style.backgroundColor="yellow" } </script>
2.鼠标
2-1 mouse
<p id="p">hello world</p> <script> var p=document.getElementById("p"); p.onmouseover=function(){ this.style.backgroundColor="red" } p.onmouseout=function(){ this.style.backgroundColor="blue" } </script>
3.节点事件
3-1 节点获取
<!--1 元素节点 3 文本节点 2 属性节点 --> <!-- getAttributeNode() 获取节点属性 firstChild获取第一个子节点 --> <p id="app">hello world</p> <script> var app=document.getElementById("app"); var id=app.getAttributeNode("id"); console.log(app.nodeType)//1 console.log(app.firstChild.nodeType)//3 console.log(id.nodeType)//2 </script>
3-2获取元素节点
<ul id="app"> <li>hello world</li> <li>hello world</li> <li>hello world</li> <li>hello world</li> </ul> <script> var app=document.getElementById("app"); var childs=app.childNodes; var arr=[]; for(var i=0;i<childs.length;i++){ if(childs[i].nodeType ==1){ arr.push(childs[i]) } } console.log(arr);//==1,li li li li //==3,text*5 </script>
3-3 获取全部元素
<ul id="app"> <li>hello world</li> <li>hello world</li> <li>hello world</li> <li>hello world</li> </ul> <script> var app=document.getElementById("app"); var childs=app.childNodes; // var children=app.children; console.log(childs)//全部元素text li text li text li text li text // console.log(children)//元素节点 li li li li
3-4 增加节点元素
<div id="app"></div> <script> var app=document.getElementById("app"); var p=document.createElement("p"); var txt =document.createTextNode("hello world"); p.appendChild(txt); app.appendChild(p); </script>
3-5 修改节点元素
<ul id="app"> <li>html</li> <li id="js">javascript</li> </ul> <script> // 给元素添加内容innerHTML /* parentNode.insertBefore(newNode,targetNode) */ var app=document.getElementById("app"); var js=document.getElementById("js") ; var li=document.createElement("li"); li.innerHTML="vue"; app.insertBefore(li,js); </script>
3-6 移除节点元素
<div id="app"> <div id="child">child</div> </div> <script> // removeChild()让从元素DOM树,渲染树上都消失 var app=document.getElementById("app"); var child =document.getElementById("child"); app.removeChild(child); </script>
3-7 替换节点元素
<div id="app"> <div id="child">child</div> <!-- <p id="p">hello world</p> --> </div> <!-- 替换某个元素 replaceChild(newNode,targetNode) --> <script> var app=document.getElementById("app"); var child =document.getElementById("child"); var p=document.createElement("p"); p.innerHTML="hello world"; app.replaceChild(p,child); </script>
3-8 克隆节点
<div id="app"> <div class="one"> hello world </div> </div> <script> var app=document.getElementById("app"); var one=document.getElementsByClassName("one")[0]; var test=one.cloneNode(true); console.log(test); app.appendChild(test); </script>
4 点击事件
4-1 点击
index.jswindow.onload=function(){ var p=document.getElementById("p"); p.onclick=function(){ console.log("hello world") }}html<p id="p">hello world</p>
1-11 onchange
<input type="text" id="input"> <script> // 当输入框的内容发生改变的时候,触发 var input=document.getElementById("input"); input.onchange=function(){ console.log("hello world") } // onresize窗口大小改变的时候,会触发 window.onresize=function(){ console.log(1) } // 窗口滚动的时候会触发 window.onscroll=function(){ console.log(2) } </script>
1-12 submit
<form id="form" onsubmit="alert(1)"> <p>用户名:<input type="text" name="user"></p> <p>密码:<input type="password" name="pwd"></p> <input type="submit" id="input">//点击提交,出现网页内容为1
4-2 onkey
<input type="text" id="input"> <script> var input=document.getElementById("input"); input.onkeydown=function(event){ console.log(event.keyCode) if(event.keyCode==82){ console.log("放下") } } input.onkeypress=function(){ console.log("press") } input.onkeyup=function(){ console.log("放开") } </script> //输入r依次出现82 放下 press 放开
1-14 value
<input type="text" id="input" value="hello world"> <script> // element.value var input=document.getElementById("input"); input.onkeyup=function(event){ if(event.keyCode==13){ console.log(this.value) } } </script>
1-15 文本字数限制
<p>还可以输入<em id="em" style="color: aqua;">0</em> /150</p> <textarea name="" id="txt" cols="30" rows="10"></textarea> <script> var tex=document.getElementById("txt"); var em=document.getElementById("em"); txt.onkeydown=function(){ var length=this.value.length; if(length<=30){ em.innerHTML=this.value.length; }else{ alert("只能输入30个字符") } } </script>//当字数超过30出现页面"只能输入30个字符"
1-16 全局列表
var a=10; function go(){ console.log("hello world") } // const window={ // a:10, // go:function(){ // console.log("hello world") // } // } // console.log(window.a); // window.go(); console.log(a); go();//10 hello world
1-17 删除按钮
<ul> <li>html <button>删除</button></li> <li>css <button>删除</button></li> <li>javascript <button>删除</button></li> </ul> <script> // parentNode --元素的父节点 var btns=document.getElementsByTagName("button"); for(var i=0;i<btns.length;i++){ btns[i].onclick=function(){ var temp=window.confirm("确定吗"); if(temp){ this.parentNode.style.display="none" } } } </script>
1-18 setTimeout
// 超时调用 间隔一段时间触发,只会触发一次 setTimeout(function(){ console.log("hello world") },2000) // 间歇调用 每隔一段时间,就会触发 setInterval(function(){ console.log("1") },1000)
1-19 递归
function show(){ setTimeout (function(){ console.log(1) show(); },1000) } show()
1-20 setInterval
<button id="btn">停止定时器</button> <script> /* 设置定时器的时候,会在window下挂载一个属性 */ /* clearInterval() 清除定时器 */ var btn =document.getElementById("btn"); var temp =setInterval(function(){ console.log("2") },1000) btn.onclick=function(){ clearInterval(temp); } </script>