自定义对象
let 自定义对象名{
属性名:属性值,
函数名称:function(形参列表){}
};
注意:在自定义对象中使用当前自定义对象的属性或者函数,需要使用this
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //自定义对象 let Person={ //属性名:属性值 name:"赫赫", age:18, //定义函数 eat:function() { //注意:在自定义对象中使用当前自定义对象的属性或者函数,需要使用this console.log("eat"+this.age);//this代表当前对象,即Person } }; console.log(Person.name); console.log(Person.age); Person.eat();//调用函数 </script> </body> </html>
window对象
1.确认框
let result=window.confirm("提示信息");
点击确认,返回true;
点击取消,返回false;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> let boo=window.confirm("确认删除吗"); if(boo){ console.log("把删除的物品的id传给后台"); } else{ console.log("不删除"); } </script> </body> </html>
2.定时器
let 变量名 =window.setInterval(匿名函数,毫秒)
说明:每隔多少毫秒执行一次匿名函数体内部的函数体
取消定时器:
window.clearInterval(定时器变量名);
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //2s后打印一次hello,然后关闭 let alarm=window.setInterval(function(){ console.log("hello"); //取消定时器 window.clearInterval(alarm); },2000); //关闭定时器 </script> </body> </html>
let 变量名=window.setTimeout(匿名函数,毫秒);
说明间隔多少毫秒执行匿名函数,且只执行一次
地址栏对象(location)
属性:href:要跳转的地址
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //停2秒跳转到百度 window.setTimeout(function(){ window.location.href="http://www.baidu.com"; },2000); </script> </body> </html>
DOM对象
Element:元素对象
获取元素对象:
1.getElementById()
方法返回拥有指定 id 值的元素。如果元素不存在getElementById()
方法将返回null
。2.
getElementsByClassName()
方法返回拥有指定类名(class属性值)的元素集合。
getElementsByClassName()
方法返回 HTMLCollection。3.
getElementsByName()
方法返回拥有指定名称(name属性值)的元素集合。
getElementsByName()
方法返回实时的 NodeList。4.
getElementsByTagName()
方法返回拥有指定标记名的所有元素的集合。
getElementsByTagName()
方法返回 HTMLCollection。
getElementsByTagName()
属性是只读的。注释:
getElementsByTagName("*")
返回文档中的所有元素。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <img src="../img/小鱼.jpeg" width="50" height="50" id="fish"> <br> <div class="hhh">你好呀</div> <br> <div class="hhh">好好好</div> <br> <input type="checkbox" name="hoppy">踢球 <input type="checkbox" name="hoppy">喝酒 <script> //获取id为fish的元素对象 let imgObj= document.getElementById("fish");//获取的元素对象是Image类型 console.log(imgObj); //获取类名为hhh的元素数组 let hhhArr= document.getElementsByClassName("hhh"); console.log(hhhArr.length);//2 //获取标签名为div的元素数组 let divArr=document.getElementsByTagName("div"); console.log(divArr.length);//2 //获取name属性值为hoppy的元素数组 let hoppyArr=document.getElementsByName("hoppy"); console.log(hoppyArr.length);//2 </script> </body> </html>
元素对象的使用,
通过document获取元素对象时,每个标签会被封装成对应的对象,这些对象都有Element对象的属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <img src="../img/小鱼.jpeg" width="50" height="50" id="fish"> <br> <div class="hhh">你好呀</div> <br> <div class="hhh">好好好</div> <br> <input type="checkbox" name="hoppy">踢球 <input type="checkbox" name="hoppy">喝酒 <script> //修改图片地址 //1.先获取img标签的Image对象 let fishId=document.getElementById("fish"); //2.通过Image对象的src属性修改图片地址 fishId.src="../img/小熊.jpg"; //修改div标签的文本的颜色 //1.获取元素对象 let divArr=document.getElementsByClassName("hhh"); for(let di of divArr)//遍历数组,获得Div对象 { //修该元素对象颜色 di.style.color="red"; //修改元素对象内容 di.innerHTML="美丽的" } //设置复选框都被选中 let checkArr=document.getElementsByName("hoppy"); for(let ch of checkArr)//Input Checkbox 对象 { ch.checked=true; } </script> </body> </html>
常见的事件
事件名 | 说明 |
onclick | 鼠标单机事件 |
onblur | 元素失去焦点 |
onfocus | 元素获得焦点 |
onload | 某个页面或图像被完成加载 |
onsubmit | 当表单提交时触发该事件 |
onkeydown | 某个键盘的键被按下 |
onmouseover | 鼠标被移到某元素之上 |
onmouseout | 鼠标从某元素移开 |
事件绑定
方式一:通过HTML标签中的事件属性进行绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- 方式一 --> <!-- 给下面的标签绑定单击事件 --> <input type="button" value="点我" onclick="on();"/> <script> //书写on()函数 function on() { alert("我被点击"); } </script> </body> </html>
方式二:通过DOM元素属性进行绑定 : 标签对象.事件名=function(){};
注意:只有是标签对象才可以绑定事件,如果是数组需要遍历数组获取出每个标签对象进行绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- 方式一 --> <!-- 给下面的标签绑定单击事件 --> <input type="button" value="点我" id="btn"/> <script> //标签对象.事件名=function(){}; //先获取element元素对象 //注意:只有是标签对象才可以绑定事件,如果是数组需要遍历数组获取出每个标签对象进行绑定 document.getElementById("btn").onclick=function() { alert("我又被点击"); }; </script> </body> </html>
onsubmit事件介绍
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="#" id="register" > <input type="text" name="username" id="username"> <input type="submit" value="提交"> </form> <script> //获得表单元素对象,并给表单元素邦迪提交事件 document.getElementById("register").onsubmit=function() { //获取输入框输入的值 let usernameValue=document.getElementById("username").value; if(usernameValue==""||usernameValue=='') { //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交 return false; }else{ return true; alert(usernameValue); } } </script> </body> </html>
onload事件
window的属性,如果将form标签的js代码放到form标签上,那么就会报错,所以使用onload事件,让引擎先加载js代码外的标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //获得表单元素对象,并给表单元素邦迪提交事件 document.getElementById("register").onsubmit=function() { //获取输入框输入的值 let usernameValue=document.getElementById("username").value; if(usernameValue==""||usernameValue=='') { //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交 return false; }else{ return true; alert(usernameValue); } } </script> <form action="#" id="register" > <input type="text" name="username" id="username"> <input type="submit" value="提交"> </form> </body> </html>
解决方法:使用onload事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //当整个页面的html图片,html,css执行完后才执行以下代码 window.onload=function(){ //获得表单元素对象,并给表单元素邦迪提交事件 document.getElementById("register").onsubmit=function(){ //获取输入框输入的值 let usernameValue=document.getElementById("username").value; if(usernameValue==""||usernameValue==''){ //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交 return false; }else{ return true; alert(usernameValue); } } } </script> <form action="#" id="register" > <input type="text" name="username" id="username"> <input type="submit" value="提交"> </form> </body> </html>