一.DOM入门
1.DOM:(Document Object Model)
简介:基于文档对象模型编程,当
html页面被浏览器解析运行的时候,浏览器内置js引擎经过每一个标签在解析过程中被封装成标签对象(节点对象),形成一种树状结构!就是通过获得标签对象来改变标签对象的一些特有属性,从而达到js的某种效果.
那么,由此得出我们所说的document代表整个HTML文档
2.js中获取标签对象
1)方式一:可以通过查询节点关系获取标签对象
特有属性:
parentNode:父节点(父标签对象)
childNodes:所有子节点
firstChild:第一个子节点;
lastChild:最后一个子节点;
nextSibling:下一个兄弟元素;
previousSibling:上一个兄弟节点
2)方式二:
使用document方法来获取标签对象;(开发中常用方式)
第一步: 建立事件源
用户名:
第三步: 绑定事件监听器
οnblur="getUserName()"
//第二步:建立事件监听器
function getUserName(){
// 1)方式一:在标签中给定ID属性值,必须唯一(推荐使用)
document.getElementById(ID属性值) 获取标签对象
var username = document.getElementById("username");
alert(username.value);
// 2)方式二:通过calss属性来获取标签对象
document.getElementsByClassName("class属性值")[0]; 获取标签对象
var usename = document.getElementsByClassName("user")[0];
alert(username.value);
// 3)方式三:通过name属性来获取标签对象;
document.getElementsByName("name属性值")[0];
alert("用户名是:"+document.getElementsByName("name")[0].value);
// 4)方式四:通过标签名获取标签对象
document.getElementsByTagName("同名标签名")[0];
var username=document.getElementsByTagName(input)[0];
}
3.js中常见事件分类
1)单击事件
第一步:建立事件源
第三步:绑定监听器:
οnclick="testClick()
(事件监听器)"
第二步:创建事件监听器
function testClick(){
//跳转新的页面
//使用window窗口对象下面地址栏对象location
//方式一:location的href属性,重新载入一个地址;
location.href(/*新的地址,如*/"www.baidu.com"/*或者是本地其他地址如adv.html*/);
//方式二:使用window窗口对象下的open方法
//window.open("新的地址",打开方式);
如:window.open("adv.html",_blank);
//方式三:展开确认对话框confirm()方法,此方法会弹出对话框,可以进行判断,进入下一步操作;
如:var flag = window.confim("你忍心删除吗?");
if(flag){
alert(删除了...);
}else{
alert("取消删除...");
}
}
2)双击事件
第一步:建立事件源
第三步:绑定事件监听器:
ondbclick="testDbclick()
(事件监听器)
"
第二步:建立事件监听器
function testDbclick(){
alert("触发双击点击事件");
}
双击事件中任然可以使用window窗口对象下面,完成自己想要完成的 *** 作;
3)失去焦点事件
onblur
第一步:建立事件源
用户名:
第三步:绑定事件源
οnblur="testBlur()(事件监听器)"
第二步:建立事件监听器
function testBlur(){
//获取文本框输入的内容
var username = document.getElementById("username").value;
//获取id="spanTip"所在的span标签对象;
var span = document.getElementById("spanTip");
//进行判断:如果用户名不是"小樊",提示错误信息,应该给span对象设置文本
if(username!="小樊"){
//不可用
span.innerHTML="对不起,不可用".fontcolor("red");
}else{
//可用
span.innerHTML="√".fontcolor("green");
}
}
4)获取焦点事件onfocus
第一步:建立事件源
用户名:
第三步:绑定事件οnfοcus="testFocus()
(事件监听器)
"
第二步:建立事件监听器
function testFocus(){
//将文本内容清空
var username = document.getElementById("username");
username.value="";
}
5)选项卡发生的变化事件
03_02选项卡发生的变化事件
//第一步:建立选项卡发生事件
籍贯:
//第二步:测试选项卡发生事件
function testChange(){
//获取id="province"的select标签对象同时获取其选择内容
var province=document.getElementById("province").value;
// 获取id=city的select标签对象
var city = document.getElementById("city");
//在每次省份判断前需要将其他省份城市清空
city.innerHTML="";
//判断省份,获得城市
if(province=="陕西省"){
//创建一个数组,陕西省的城市
var arr = ["西安市","榆林市","神木市","宝鸡市","咸阳市"];
//遍历
for(var i=0;i
//arr[i]每个城市名
//设置id="city"的select标签对象中的内容
city.innerHTML+="";
}
}
if(province=="山西省"){
//创建一个数组,山西省的城市
var arr = ["太原市","运城市","临汾市","永济市","忻州市"];
//遍历
for(var i=0;i
//arr[i]每个城市名
//设置id="city"的select标签对象中的内容
city.innerHTML+="";
}
}
if(province=="广东省"){
//创建一个数组,广东省的城市
var arr = ["深圳市","珠海市","东莞市","佛山市","惠州市"];
//遍历
for(var i=0;i
//arr[i]每个城市名
//设置id="city"的select标签对象中的内容
city.innerHTML+="";
}
}
}
6)鼠标经过事件(onmouseover)
// 将你所要显示的照片也就是.jpg文件放在img中,通过src属性导入.
function testOver(){
// setTimeout("任务函数",毫秒值);表示经过这个毫秒值之后执行一次任务;
setTime(opeHtml()",5000);
}
funtion openHtml(){
location.href="adv.html" ;
//其中adv是外部一个网页,可以制作也可以引用其他网页地址;
}
7)鼠标移出事件(onmouseout)
// 将你所要显示的照片也就是.jpg文件放在img中,通过src属性导入.
function testOut(){
alert("鼠标移出触发事件");
}
二.正则表达式
1.简介:
搜索引擎能够识别的语法
2.相关语法:
1)数量相关语法
①x:代表任意字符;
②x+:代表字符出现一次或者多次;
③x*:代表字符出现0次或者多次;
④x?:代表字符出现0次或者一次;
2)范围相关语法
①x{n}:表示x字符恰好出现n次;
②x{n,}:表示x字符至少出现n次;
③x{n,m}:表示x字符至少出现n次,但不超过m次;
3 )匹配相关字符
① x[a-z]:表示x字符可以使a-z任意一个小写字母;
②x[0-9]:x字符是一个数字字符;
③ x[A-Za-z0-9_]:表示x字符可以使任意的大小写字母或者数字或_;
正则表达式:有一个函数test("接收用户输入的文本框的内容字符串")匹配是否成功
创建一个正则规则:
语法格式:var 正则对象名=/书写正则语法/; 不完全匹配(会出现安全漏洞)
正则对象名.test(字符串),true,匹配成功;false,匹配失败;
注意:在Java语言中和javascript中,如果要完全匹配,必须加入便捷匹配器
^:以...开头;
$:以...结尾;
var 正则表达式对象 = /^正则语法$/;
三.表单校验
1.简介:
需要每一个表单相同时满足正则的规则,才能进行注册提交到服务器中!
举例:
08_表单校验
//校验用户名
function tsetUserName(){
// 1)获取id="username"的input标签对象和其内容;
var username = document.getElementById("username").value;
// 2)定义用户名正则规则用户名:4-14位的数字或者字母(不区分大小写)组成
var reg = /^[A-Za-z0-9]{4,14}$/;
// 3)获取 id="usernameTip"的span标签对象
var span = document.getElementById( "usernameTip");
//4)判断
if(reg.test(username)){
//成立
span.innerHTML="√".fontcolor("green");
return true;
}else{
//不成立
span.innerHTML="×".fontcolor("red");
return false;
}
}
//校验密码
function testPassword(){
//1)获取id="psw" 的input标签对象及其内容
var psw = document.getElementById("psw" ).value;
// 2)定义密码的正则规则:6-10位的数字或者英文大小字母组成
var reg = /^[A-Za-z0-9]{6,10}$/ ;
// 3)获得id="pswTip"的span标签对象
var span = document.getElementById("pswTip");
//4)判断
if(reg.test(psw)){
//成立
span.innerHTML="√".fontcolor("green");
return true;
}else{
//不成立
span.innerHTML="×".fontcolor("red");
return false;
}
}
//校验确认密码
function testRepsw(){
// 1)获得再次确认密码的内容
var repsw = document.getElementById("repsw").value;
// 2)获取密码值
var psw = document.getElementById("psw").value;
// 3)获取id="repswTip"span标签对象;
var span = document.getElementById("repswTip");
//4)判断
if(repsw==psw){
//成立
span.innerHTML="√".fontcolor("green");
return true;
}else{
//不成立
span.innerHTML="×".fontcolor("red");
return false;
}
}
//校验邮箱
function testEmail(){
// 1)获取id="email"的input标签对象以及内容;
var email =document.getElementById("email").value;
// 2)定义邮箱正则规则:数字或者字母@数字或者字母.com/.cm/.com.cn
var reg = /^[A-Za-z0-9]+@[A-Za-z0-9]+(\.[a-z]{2,3}){1,2}$/;
// 3)获取id="emailTip"的span标签;
var span = document.getElementById("emailTip");
// 4)判断
if(reg.test(email)){
//成立
span.innerHTML="√".fontcolor("green");
return true;
}else{
//不成立
span.innerHTML="×".fontcolor("red");
return false;
}
}
// 将所有的表单项条件都满足,才能注册
function checkAll(){
if(testEmail() &&testRepsw()&&testPassword()&&tsetUserName()){
return true;
}else{
return false;
}
}
评论列表(0条)