获取元素
根据 ID 获取元素
语法: document.getElementById(id)
<div id='time'>2020-01-09</div>
<script>
var timer = document.getElementById('time');
console.log(timer); // 根据 ID 获取
// 查看里面的属性和方法
console.dir(timer)
</script>根据标签名获取元素
语法: document.getElementsByTagName('标签名')<ul>
<li>u1</li>
</ul>
<ol id="ol">
<li>ol</li>
</ol>
<script>
// 根据元素名获取
var lis = document.getElementsByTagName('li');
console.log(lis); // HTMLCollection(2) [li, li] 返回所有的 ol和ul 的 li 元素 是复数
// 可以通过ele 继续获取元素名
var ol_ele = document.getElementById('ol');
var ol_lis = ol_ele.getElementsByTagName('li');
console.log(ol_lis); // ol 下所有的li
</script>根据类名获取元素 H5 新增
语法: document.getElementsByClassName('类名')<div class="cla"></div>
<script>
var cla = document.getElementsByClassName('cla'); // HTMLCollection [div.cla] 返回对象集合,需要使用对象 得取第一个元素,第二个是length
console.log(cla);
</script>选择器方式获取元素 H5新增
语法:
document.querySelector('选择器')
document.querySelectorAll('选择器')<div class="cla"></div>
<ul>
<li>1</li>
<li>2</li>
</ul>
<script>
var cla = document.querySelector('.cla'); // 返回对象元素, 如果是class 则写.类名,id 则写#id
console.log(cla);
var lis = document.querySelectorAll('li'); // 返回所有对象集合
console.log(lis);
</script>获取特殊元素(body, html)
document.body; // body document.documentElement; // html
事件
事件三要素
- 事件源: 触发事件的元素
- 事件类型: 什么事件 例如click点击事件
- 事件处理程序: 事件处理函数
常见的鼠标事件
鼠标事件 | 触发条件 |
onclick | 鼠标点击左键触发 |
onmouseover | 鼠标经过 |
onmouseout | 鼠标离开 |
onfocus | 获取鼠标焦点 |
onblur | 失去鼠标焦点 |
onmousemove | 鼠标移动触发 |
onmouseup | 鼠标弹起触发 |
onmousedown | 鼠标按下触发 |
操作元素
改变元素内容(设置,获取)
- ele.innerText
- ele.innerHtml
区别:
- 获取内容时: innerText去掉html标签,同时空格和换行也去掉, innerHtml 保留html标签,空格和换行
- 设置内容时: innerText不会识别html,而innerHTML会识别

<body>
<div></div>
<p>
我是文字
<span>123</span>
</p>
<script>
var div = document.querySelector('div');
div.innerHTML = '<strong>今天是:</strong>'; // 今天是:
div.innerText = '<strong>今天是:</strong>'; // <strong>今天是:</strong>
var p = document.querySelector('p');
console.log(p.innerText); // 我是文字 123
console.log(p.innerHTML);
/*
我是文字
<span>123</span>*/
</script>
</body>
元素属性操作
- 获取属性的值
元素对象.属性名
- 设置属性的值
元素对象.属性名 = 值

<script>
var ldh = document.querySelector('#ldh');
var zxy = document.querySelector('#zxy');
var img = document.querySelector('img');
// 获取元素属性的值
console.log(img.alt); // 刘德华
// 设置元素属性值
ldh.onclick = function () {
img.src = 'images/ldh.jpg';
img.title = '刘德华666'
};
zxy.onclick = function () {
img.src = 'images/zxy.jpg';
img.title = '张学友'
}
</script>
表单元素属性
- 设置表单属性值
元素对象.属性名
- 设置属性值
元素对象.属性名 = 值 表单元素中有一些属性如:disabled、checked、selected,元素对象的这些属性的值是布尔型。

<body>
<button>按钮</button>
<input type="text" value="输入内容">
<script>
var btn = document.querySelector('button');
var input = document.querySelector('input');
btn.onclick = function () {
// 获取表单属性值
console.log(input.value); // 输入内容
// 修改表达属性值
input.value = '被修改了';
this.disabled = true; // 禁用点击按钮
}
</script>
</body>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>密码显示案例</title>
<style>
.box {
position: relative;
width: 400px;
border-bottom: 1px solid #ccc;
margin: 100px auto;
}
.box input {
width: 370px;
height: 30px;
border: 0;
outline: none;
}
.box img {
position: absolute;
top: 2px;
right: 2px;
width: 24px;
}
</style>
</head>
<body>
<div class="box">
<label for="">
<img src="images/close.png" alt="" id="eye">
</label>
<input type="password" name="" id="pwd">
</div>
<script>
// 获取元素
var eye = document.querySelector('#eye');
var input = document.querySelector('input');
// 设置一个变量,后面判断密码显示和隐藏用
var falg = 0;
eye.onclick = function () {
if (falg == 0) {
this.src = 'images/open.png';
input.type = 'text'; // 改变文本type属性
falg = 1;
}else {
this.src = 'images/close.png';
input.type = 'password';
falg = 0;
}
}
</script>
</body>
</html>
样式属性
- style属性改变
元素对象的style属性也是一个对象! 元素对象.style.样式属性 = 值

<body>
<div></div>
<script>
var div = document.querySelector('div');
div.style.width = '200px';
div.style.backgroundColor = 'red';
</script>
</body>
- 操作className属性
元素对象.className = 值; 因为class是关键字,所有使用className
className会覆盖掉原先的类名

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box {
position: relative;
width: 74px;
height: 88px;
border: 1px solid #ccc;
margin: 100px auto;
font-size: 12px;
text-align: center;
color: #f40;
/* display: block; */
}
.box img {
width: 60px;
margin-top: 5px;
}
.close-btn {
position: absolute;
top: -1px;
left: -16px;
width: 14px;
height: 14px;
border: 1px solid #ccc;
line-height: 14px;
font-family: Arial, Helvetica, sans-serif;
cursor: pointer;
}
</style>
</head>
<body>
<div class="box">
淘宝二维码
<img src="images/tao.png" alt="">
<i class="close-btn">×</i>
</div>
<script>
var close = document.querySelector('.close-btn');
var box = document.querySelector('.box');
close.onclick = function () {
box.style.display = 'none';
}
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
input {
color: #999;
}
</style>
</head>
<body>
<input type="text" value="手机">
<script>
var input = document.querySelector('input');
input.onfocus = function () {
if (this.value === '手机') {
this.value = ''; // 改变元素属性值
}
this.style.color = '#333' // 样式属性改变
};
input.onblur = function () {
if (this.value === '') {
this.value = '手机'
}
this.style.color = '#333'
}
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div {
width: 600px;
margin: 100px auto;
}
.message {
display: inline-block;
font-size: 12px;
color: #999;
background: url(images/mess.png) no-repeat left center;
padding-left: 20px;
}
.wrong {
color: red;
background-image: url(images/wrong.png);
}
.right {
color: green;
background-image: url(images/right.png);
}
</style>
</head>
<body>
<div class="register">
<input type="password" class="ipt">
<p class="message">请输入6~16位密码</p>
</div>
<script>
// 获取元素
var ipt = document.querySelector('.ipt');
var message = document.querySelector('.message');
// 注册事件,失去焦点事件
ipt.onblur = function() {
// 根据表单里面值的长度 ipt.value.length
if (this.value.length < 6 || this.value.length > 16) {
// console.log('错误');
message.className = 'message wrong';
message.innerHTML = '您输入的位数不对要求6~16位';
} else {
message.className = 'message right';
message.innerHTML = '您输入的正确';
}
};
</script>
</body>
</html>
来源:https://www.cnblogs.com/py-web/p/12172794.html
