一、事件
HTML事件是发生在hTML元素上的“事情”。比如:按钮被点击、鼠标移动到元素上等…
事件绑定
- 方式一:通过HTML标签中的事件属性进行绑定
<input type="button" value="点我" onclick="on()">
<script>
function on(){
alert("我被点击了");
}
</script>
- 方式二:通过DOM元素属性绑定
<input type="button" value="点我" id="btn">
<script>
document.getElementById("btn").onclick = function(){
alert("我被点击了");
}
</script>
常见事件
二、BOM
Browser Object Model 浏览器对象模型
window(浏览器窗口对象)
获取:直接使用window,其中window.可以省略
setInterval(周期定时器)
var id = window.setInterval(function,time);每隔指定时间执行某函数。time就是间隔时间,单位是毫秒;function就是要执行的函数。
window.clearInterval(id);//清除周期定时器
案例演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="time"></div>
<input type="button" value="暂停" onclick="stop()">
<input type="button" value="继续" onclick="start()">
<script>
function getTime(){
var now = new Date();
var nowStr = now.toLocaleString();
var demo = document.getElementById("time");
demo.innerText = nowStr;
}
getTime();
var id = window.setInterval(getTime,1000);
function stop(){
window.clearInterval(id);
}
function start(){
id = window.setInterval(getTime,1000);
}
</script>
</body>
</html>
setTimeout(超时定时器)
var id = window.setTimeout(function,time);指定时间后执行某函数。time就是时间,单位是毫秒;function就是要执行的函数。
window.clearTimeout(id);//清除超时定时器
案例演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<img src="" width="500" style="display: none;" id="xgg">
<script>
function showImg(){
document.getElementById("xgg").style.display = "inline-block";
}
var id = window.setTimeout(showImg,2000);
//window.clearTimeout(id);
</script>
</body>
</html>
alert(警告框)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
window.alert("这是个警告");
</script>
</body>
</html>
confirm(确认框)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var res = window.confirm("您确定要删除嘛?");
console.log(res);
</script>
</body>
</html>
prompt(提示框)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var res = window.prompt("请输入手机号","123747235");
console.log(res);
</script>
</body>
</html>
Location(地址栏对象)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
console.log(location.href);
location.href = "http://www.baidu.com";
</script>
</body>
</html>
history(历史记录对象)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="后退" onclick="b()">
<input type="button" value="前进" onclick="f()">
<script>
//要有可前进和可后退的页面,才能前进和后退
function b(){
history.back();
}
function f(){
history.forward();
}
</script>
</body>
</html>
三、DOM
Document Object Model 文档对象模型
获取页面元素
操作页面元素
1、创建dom对象
document.createElement(“标签名”);
2、添加dom对象
(1)A.appendChild(B) 将B添加到A内部的最后面
(2)A.insertBefore(B, C) 将B添加到A内部C的前面
3、删除dom对象
(1)A.remove() 将A删除
(2)A.removeChild(B) 将A内部的B删除
4、替换dom对象
A.replaceChild(B, C) 用B替换A内部的C
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="test">
<h1>这是div里面的标题</h1>
<p>这是div里面的第一个段落</p>
</div>
<script>
//创建一个能够跳转到淘宝的超链接<a href="http://www.taobao.com">淘宝</a>
var newEle = document.createElement("a");
//给新创建的标签的href属性赋值
newEle.href = "http://www.taobao.com";
//在新建的标签中添加文本
newEle.innerText = "淘宝";
//获取id为test的标签
var demo = document.getElementById("test");
//将新建的标签放到id为test的标签中的最后面
//demo.appendChild(newEle);
//将新建的标签放到id为test的标签中的p标签的前面
var p = document.getElementsByTagName("p")[0];
//demo.insertBefore(newEle,p);
//将新建的标签放到id为test的标签中替换其中的p标签
//demo.replaceChild(newEle,p);
//删除id为test的标签中的p标签
//demo.removeChild(p);
//删除id为test的标签
demo.remove();
</script>
</body>
</html>
操作元素属性
1、页面元素.属性名 = “值”
2、设置:标签对象.setAttribute(“属性名”,“属性值”);
3、获取:标签对象.getAttribute(“属性名”);
4、删除:标签对象.removeAttribute(“属性名”);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="text" id="username" name="uname" maxlength="6" value="chenwei">
<script>
//获取id为username的标签
var demo = document.getElementById("username");
//获取该标签value属性的值
//console.log(demo.value);
//console.log(demo.getAttribute("maxlength"));
//设置该标签的value属性的值为mary
//demo.value = "mary";
//demo.setAttribute("value","mary");
//删除该标签的value属性
demo.removeAttribute("value");
</script>
</body>
</html>
操作元素样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
#test{
width: 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div id="test"></div>
<script>
var demo = document.getElementById("test");
//demo.style = "width: 200px;height: 200px;background-color: green;";
demo.style.width = "200px";
demo.style.height = "200px"
demo.style.backgroundColor = "pink";
demo.style.borderRadius = "50%";
</script>
</body>
</html>
操作元素内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="test">
</div>
<script>
var demo = document.getElementById("test");
//获取标签中的内容
//console.log(demo.innerText); //只获取文本
//console.log(demo.innerHTML); //获取所有(包括标签)
//设置标签的内容
var str = "<h1>这是div中的p标签</h1>";
//demo.innerText = str; //会将字符串中的标签当作文本放进去
demo.innerHTML = str; //会将字符串中的标签当作标签放进去
</script>
</body>
</html>
innerText与innerHTML的区别:
1)获取时,innerText只能获取文本内容,innerHTML不仅能获取文本内容,还能获取标签
2)设置时,innerText会将标签当成文本放进去,innerHTML放进去的标签能被浏览器翻译