1.Html DOM
1.DOM是Document Object Model文档对象(网页中的标签)模型的缩写。
2.通过html DOM,可用javaScript操作html文档的所有标签。
3.DOM对象:指的是一类对象的总称。
4.DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使用面向对象的思想来操作,js中提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document对象,通过document提供的方法精确获得网页中要操作的标签。
2.查找元素
要操作,先得到。
四种方式查找:
1.通过id找到html标签:
document.getElementById(“id”);
2.通过标签名找到html标签:
document.getElementsByTagName(“p”);
3.通过类名找到html标签:
document.getElementsByClassName(“p”);
4.通过name找到html标签:
document.getELementsByName(“name”).
3.js对网页操作
1.标签属性操作:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
*/
function oper(){
var a = document.getElementById("text1");//通过标签的id获得标签
var b = document.getElementById("text2");
var obj = document.body;//获得body标签对象
b.value = a.value;
a.value = "";
}
</script>
</head>
<body>
<!-- 点击操作按钮,将第一个文本框的值,赋给第二个文本框,然后将第一个文本框清空 -->
<input id="text1" type="text" value="" /><br />
<input id="text2" type="text" value="" /><br />
<input type="button" value="操作" onclick="oper()" />
</body>
</html>
2.标签体内容操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
2.js对网页操作---标签内容操作
*/
function oper(){
var dObj1 = document.getElementById("div1");
var dObj2 = document.getElementById("div2");
console.log(dObj1.innerHTML);//innerHTML获得标签内HTML内容(包含标签,解析标签)
console.log(dObj2.innerText);//innerText获得标签内的文本内容(纯文本,不解析标签)
}
</script>
</head>
<body>
<div id="div1">
<b>这是一个div</b>
</div>
<div id="div2">
<b>这是一个div</b>
</div>
<input type="button" value="操作" onclick="oper()" />
</body>
</html>
3.标签的css样式操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
2.js对网页操作---标签内容操作
3.js对网页操作---标签样式(css属性)操作
*/
function oper(){
var dObj = document.getElementById("div1");
dObj.style.backgroundColor="red"
}
</script>
</head>
<body>
<div id="div1">
<b>这是一个div</b>
</div>
<input type="button" value="操作" onclick="oper()" />
</body>
</html>
4.事件操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
2.js对网页操作---标签内容操作
3.js对网页操作---标签样式(css属性)操作
4.js对网页操作---事件操作
*/
function loadBody(){
//先需要让网页中的标签加载,然后获得标签,绑定处理函数
var iObj = document.getElementById("in");
iObj.onclick=oper;
/* iObj.οnclick=function(){
console.log("aaa")
} */
}
function oper(){
console.log("aaa")
var dObj = document.getElementById("div1");
dObj.style.backgroundColor="blue";
}
</script>
</head>
<body onload="loadBody()">
<div id="div1">
<b>这是一个div</b>
</div>
<input type="button" id="in" value="操作" />
</body>
</html>
5.批量操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
2.js对网页操作---标签内容操作
3.js对网页操作---标签样式(css属性)操作
4.js对网页操作---事件操作
*/
function oper(flag){
//通过标签名称来获得标签对象,返回的是一个集合/数组
/* var objs = document.getElementsByTagName("input");
for(var i=0;i<objs.length;i++){
console.log(objs[i].value)
} */
//通过标签的name属性值获得标签对象
var objs =document.getElementsByName("check");
for(var i=0;i<objs.length;i++){
objs[i].checked = flag; //true/"checked"
}
//通过标签的类属性获得标签对象
/* var objs = document.getElementsByClassName("c1");
for(var i=0;i<objs.length;i++){
console.log(objs[i].value)
} */
}
</script>
</head>
<body>
<input type="checkbox" class="c1" name="check" value="java" />java
<input type="checkbox" class="c1" name="check" value="sql" />sql
<input type="checkbox" name="check" value="html" />html
<input type="checkbox" name="check" value="css" />css
<input type="button" id="in" value="全选" onclick="oper(true)" />
<input type="button" id="in" value="全不选" onclick="oper(false)" />
</body>
</html>
6.批量为多个标签绑定事件及处理函数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
DOM对象:指的是一类对象的总称
DOM:在js对网页进行操作时,认为网页中的每个标签就是一个对象,使面向对象的思想来操作
js提供了一个document对象,表示整个html文档对象,网页加载后会自动生成表示此文档的document
对象,通过document对象中提供的方法精确获得网页中要操作的标签。
1.js对网页操作---标签属性操作
2.js对网页操作---标签内容操作
3.js对网页操作---标签样式(css属性)操作
4.js对网页操作---事件操作
*/
//批量的为多个标签绑定事件及处理函数
window.onload=function(){
var objs = document.getElementsByTagName("input");
for(var i=0;i<objs.length;i++){
objs[i].onclick=function(){
console.log(this.value)
}
}
}
</script>
</head>
<body>
<input type="button" value="操作1" />
<input type="button" value="操作2" />
<input type="button" value="操作3" />
</body>
</html>
4.表单验证
1.JavaScript可用来在数据被送往服务器前对HTML表单中的这些输入数据进行验证;
2.被JavaScript验证的这些典型表单数据有:
(1)用户是否已填写表单中的必填项目(内容长度)?
(2)用户输入的内容格式是否合法?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
提交表单时,对表单内容进行验证,不符合要求的阻止表单提交
onsubmit事件,当点击submit按钮时触发,调用处理函数,函数返回true提交表单,false不提交
如果按钮不是submit类型,但是要提交,使用在js中提交表单的方式
document.getElementById("formID").submit()
*/
function checkFrom(){
var account = document.getElementById("accountID").value;
var password = document.getElementById("passwordID").value;
if(account.length == 0){
alert("账号不能为空!")
return false;
}
if(password.length == 0){
alert("密码不能为空!")
return false;
}
return true;
}
</script>
</head>
<body>
<form action="server.html" method="get" onsubmit="return checkFrom()" id="formID" >
账号:<input type="text" id="accountID" value="" /><br />
密码:<input type="text" id="passwordID" value="" /><br />
<input type="submit" value="提交" id="submitID" />
</form>
</body>
</html>
3.正则表达式验证
^匹配以指定字符开头的字符串
$匹配以指定字符结尾的字符串
*匹配前面的字符式零次或多次
{n}匹配确定的 n 次
{n,}至少匹配n 次
{n,m}匹配n-m次,包含n和m
[0-9]表示0-9之间的任意字符
\d 匹配一个数字字符。等价于 [0-9]
\D 匹配一个非数字字符。等价于 [^0-9]
[a-z]匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符
[A-Z]匹配 ‘A’ 到 ‘Z’ 范围内的任意大写字母字符
[^a-z]匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符
x|y匹配 x 或 y
\w等价于’[A-Z,a-z,0-9,]‘
\W 等价于 '[^A-Z,a-z,0-9,]‘
只能输入汉字:[\u4e00-\u9fa5]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
/*
正则表达式
*/
function checkFrom(){
/* var account = document.getElementById("accountID").value; */
var password = document.getElementById("passwordID").value;
/* var reg1 = new RegExp("^[1][3,5,7,8,9][0,1,2,5,7,8,9][0-9]{8}$");
var res1 = reg1.test(account); */
var reg2 = new RegExp("^\\w{8,18}$")
var res2 = reg2.test(password);
/* console.log(res1); */
console.log(res2);
}
</script>
</head>
<body>
<form action="server.html" method="get" id="formID" >
账号:<input type="text" id="accountID" value="" onblur="checkFrom(this)" /><br /> <!-- 鼠标出时触发 -->
密码:<input type="text" id="passwordID" value="" onblur="checkFrom(this)" /><br />
<input type="submit" value="提交" id="submitID" />
</form>
</body>
</html>