1..什么是JavaScript?
客户端的解释性脚本语言.与Java之间不存在任何关系;
2.JavaScript的语法结构,声明与引入
<script type="text/javascript">...</script>
<script type="text/javascript" src="JS文件路径及名称"></script>
内部JS直接在标签<script></script>中填写,外部导入<script src="外部js路径"></script>
第一步:创建JS文件并且写入相关的代码;
第二步:在网页文件内调用相关的JS文件;
说明:
A.JS严格区分大小写;
B.每行JS代码必须以分号结尾;(现在虽然可以不写,但是怕以后过度到全部用,以防万一)
C.JavaScript文件的扩展名为.js
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js的声明和引入</title>
<script>
alert("这是我的第一个js");
/*js的声明方式1 在head标签进行js代码域的声明 只会作用于当前页面*/
</script>
<script src ="59-my.js" type="text/javascript">
/*src属性引入外部js代码 代码可重用,避免代码冗余*/
console.log(3,5));
</script>
</head>
<body>
</body>
</html>
外部59-my.js
alert("这是外部声明的js");
function add(x,y){
return x+y;
}3.JS中的变量:
JavaScript 变量是存储数据值的容器。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js中的变量</title>
<script type="text/javascript">
var a = 1;
var b = "c";
var c;
alert(typeof(a));
alert(typeof(new Date()));
if(c){
alert(c);
}
function add(x,y){
alert(x+y);
}
for(var i = 1; i < 9;i++){
for(var j = 1; j <= i;j++){
document.write("i*j"+"="+i*j+" ");
}
document.write("<br />");
}
</script>
</head>
<body>
<input type="button" name="" id="" value="" onclick="add()"/>
<label for="">
点击这里调用add函数
</label>
</body>
</html>4.JS中的数据类型
字符型(string),数值型(number),布尔型(boolean),未定义(undefined),null(空对象),function(自定义函数),
对象(object),属性与方法的集合体;
{
propert:value,
....,
method:function([parameter,...]){
...
...
}
}
<!DOCTYPE html>
<!--p31 20分钟-->
<html>
<head>
<meta charset="UTF-8">
<title>js中自定义对象</title>
<!--应该有哪些属性
应用:
Ajax中会使用
使用:
1.创建自定义对象
var 对象名 = new Object();
对象名.属性名1 = 属性值1;...
2.一般用来存储数据,不会再自定义对象中存储对象。
3.js中的对象属性是可以自定义的可扩充的,不是依赖于类的声明的,类只是对象公共部分的一种声明,是为了减少代码冗余
-->
<script type="text/javascript">
//1.创建自定义对象
var obj = new Object();
obj.name = "jason";
obj.age = 18;
obj.test = function(){
alert(obj.name);
}
obj.test();
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<!--
js中类的"继承" : prototype关键字
通过prototype关键字实现了不同对象之间的数据共享
作用1:实现某个类的所有子类对象的方法区对象的共享,节省内存;
作用2:
-->
<meta charset="UTF-8">
<title>js中类和对象</title>
<script type="text/javascript">
var date = new Date();
console.log(date.getHours()+":"+date.getMinutes()+":"+date.getSeconds())
//创建类Person 和 User
function Person(name,age){
this.name = name;
this.age = age;
this.fav = "唱歌";
}
function User(uname,pwd){
this.uname = name;
this.pwd = pwd;
}
//使用prototype
Person.prototype.test = function(){
alert("prototype关键字实现数据共享!!!");
}
Person.prototype.user = new User();
User.prototype.testU = function(){
alert("User中的testU");
}
//使用类
var p1 = new Person("小李","18");
alert(p1.name);
alert(p1.test());
p1.user.testU();
</script>
</head>
<body>
</body>
</html>5.window对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js中window对象的学习</title>
<!--
1.框体方法
1.alert 没有返回值
2.confirm 警告框
确认返回true
取消返回false
3.prompt 输入框
返回输入的值 否则 返回null
2.定时和间隔执行方法
setTimeout:
指定的时间后执行指定的函数
参数1:函数对象
参数2:时间,单位毫秒
setInterval : 没间隔指定的事件执行指定的函数
参数1:函数对象
参数2:时间,单位毫秒
clearTimeout 停止当前的定时方法
参数,定时器的id
clearInterval 用来停止指定的时间间隔
参数,间隔器的id
-->
<script type="text/javascript">
//弹窗 警告框 输入框
function testAlert(){
window.alert("测试alert");
}
function testConfirm(){
var a = window.confirm("确定要删除吗??");
console.log(a);
}
function testPrompt(){
var a = window.prompt("请输入昵称:");
console.log(a);
}
//声明全局变量id,为了停止定时执行
var id,ids;
//测试定时执行
function testSetTimeout(){
id = window.setTimeout(function(){
alert("三秒后执行弹窗!!!");
},3000);
}
//间隔执行
function testSetInterval(){
ids = window.setInterval(function(){
alert("我是间隔执行!!!每三秒弹一次");
},2000);
}
//停止定时
function testClearTimeout(){
window.clearTimeout(id);
}
function testClearinterval(){
window.clearInterval(ids);
}
</script>
</head>
<body>
<input type="button" name="" id="" value="测试警告框" onclick="testConfirm()"/><br />
<input type="button" name="" id="" value="测试输入框" onclick="testPrompt()"/><br />
<hr />
<input type="button" name="" id="" value="测试setTimeg定时执行" onclick="testSetTimeout()"/><br />
<input type="button" name="" id="" value="测试setInterval间隔执行" onclick="testSetInterval()"/><br />
<input type="button" name="" id="" value="测试clearTimeout--停止指定的定时器" onclick="testClearTimeout()"/><br />
<input type="button" name="" id="" value="测试clearInterval--停止间隔执行的定时器" onclick="testClearinterval()" />
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js中window对象学习2</title>
<!--
js的window对象学习
1.子窗口方法
window.open("子页面的相路径","打开方式","属性")
示例:window.open("59-js-测试用的son子页面.html","newwindow","height=400,width=600,top=0,left=0,toolbar=no,menubar=no,scrollbar =no,resizable=no,location=no,status=no");
注意:关闭子页面的方法window.close() 只能关闭打开的子页面
2.子页面调用父页面的函数
window.opener.父页面的函数
js的window对象的常用属性
地址栏属性: location
window.location.href = "新的资源路径(相对路径/URL)";
window.location.reload() 重新加载资源页面
历史记录属性:history
window.history.forward() 页面资源前景,历史记录的前进
window.history.back() 页面资源后退,历史记录后退
window.history.go(index) 跳转到指定的历史记录资源
-3 -2 -1 负数 0 正数
后退到第几个 当前页面=刷新 1-2-3 当前页面的前第几个
屏幕属性:screen
window.screen.width
window.screen.height 两个结合获取屏幕分辨率
浏览器配置属性:navigator
window.navigator.UserAgent
主题面板属性
-->
<script type="text/javascript">
//1.子页面的方法
function testOpen(){
window.open("59-js-测试用的son子页面.html","newwindow","height=400,width=600,top=0,left=0,toolbar=no,menubar=no,scrollbar =no,resizable=no,location=no,status=no");
}
//子页面调用父页面的函数
function testUseFather(){
alert("父页面的方法!!!不知为什么会调用失败!!!");
}
//1.地址栏属性学习 --- location
function testLocation(){
window.location.href = "https://www.baidu.com";
}
function testLocation2(){
window.location.reload();
}
//2.历史记录属性
function testHistory(){
window.history.forward();
}
//3.屏幕属性学习
function testScreen(){
var x = window.screen.width;
var y = window.screen.height;
alert("x:"+x +" y:"+y);
}
//浏览器配置属性
function testNavigtor(){
alert(window.navigator.userAgent);
}
</script>
</head>
<body>
<input type="button" name="" id="" value="测试open,打开子页面" onclick="testOpen()"/>
<br />
<hr />
<input type="button" name="" id="" value="测试地址栏属性--location--跳转资源" onclick="testLocation()"/><br />
<input type="button" name="" id="" value="测试地址栏属性--location--重新加载资源" onclick="testLocation2()"/>
<hr />
<br />
<input type="button" name="" id="" value="测试历史记录--history--前进(bakc同理,go下标)" onclick="testHistory();"/>
<hr />
<br />
<input type="button" name="" id="" value="测试屏幕属性--screen" onclick="testScreen();"/>
<hr />
<br />
<input type="button" name="" id="" value="测试浏览器配置属性--navigator" onclick="testNavigtor()"/>
</body>
</html>6.DOM对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>document对象学习</title>
<!--
1.document 对象的概念
浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存的HTML文档的所有信息
2.使用document
获取HTML元素对象
直接获取方式
通过id
通过name属性值
通过标签名
通过class属性值
操作HTML对象的属性
操作HTML元素对象的内容和样式
操作HTML的文档结构
document操作Form元素
document操作表格
document对象实现form表单的校验
-->
<script type="text/javascript">
//document获取元素对象
//1.直接获取方式
function testGetElementById(){
var inp = document.getElementById("uname");
alert(inp);
}
function testGetElementsByName(){
alert(document.getElementsByName("uname1").length);
}
function testGetElementsByTagName(){
var inps = document.getElementsByTagName("input");
alert(inps.length);
}
function testGetElementsByClassName(){
var inp1 = document.getElementsByClassName("uname");
alert(inp1);
}
//2.间接获取方式
//父子关系
function testParentGetChilds(){
//获取父级元素对象
var parentEle = document.getElementById("showdiv");
//获取所有的子元素对象群组
var childs = parentEle.childNodes;
alert(childs.length); //有换行所以会增加很多
}
//子父关系
function testChildGetParent(){
alert(document.getElementById("inp").parentNode);
}
//兄弟关系
function testBrother(){ //注意有回车换行
var preEle = document.getElementById("inp").previousSibling; //弟获取兄
var nextEle = document.getElementById("inp").nextSibling; //兄获取弟
alert(preEle + ":::" + nextEle)
}
</script>
<style type="text/css">
.common{}
#showdiv{
border: solid 1px red;
width: 400px;
height: 500px;
}
</style>
</head>
<body>
<h3>document 对象的概念和获取元素对象学习</h3>
直接获取:
<hr /><br />
<input type="text" name="uname" id="uname" value="测试获取HTML元素对象---getElementById('id值')" onclick="testGetElementById()" style="width: 400px;"/><br />
<input type="text" name="uname1" id="uname1" value="测试获取HTML元素对象---getElementByName('name值')" onclick="testGetElementsByName()" style="width: 400px;"/><br />
<input type="text" name="uname2" id="uname2" value="测试获取HTML元素对象---getElementsByTagName('标签名')" onclick="testGetElementsByTagName()" style="width: 400px;"/><br />
<input type="text" name="uname3" id="uname3" value="测试获取HTML元素对象---getElementsByClassName('标签名')" onclick="testGetElementsByClassName()" style="width: 400px;"/><br />
<br />
<input type="checkbox" name="" id="" value="复选框" class="common"/>
<br />
间接获取:<br />
<input type="button" name="" id="" value="获取所有子元素--父子关系" onclick="testParentGetChilds()"/><br />
<input type="button" name="" id="" value="获取父元素--子父关系" onclick="testChildGetParent()"/><br />
<input type="button" name="" id="" value="获取兄弟元素--兄弟关系" onclick="testBrother()"/><br />
<div id="showdiv">
<input type="" name="" id="" value="" />
<input type="" name="" id="inp" value="" />
<input type="" name="" id="" value="" />
<input type="" name="" id="" value="" />
<input type="" name="" id="" value="" />
<input type="" name="" id="" value="" />
</div>
</body>
</html>7.JS操作元素
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js操作HTML的元素属性</title>
<!--
js 操作HTML元素属性学习
获取元素对象
操作元素属性
获取:
①元素对象.属性值 // 返回当前属性的属性值
②元素对象.getAttribute("属性名")
修改
元素对象.属性名 = 属性值
元素对象.setAttribute("属性名","属性值")
注意:
尽量不要去修改id 和 name 属性值
使用固有方法获取value值是默认值,不能获取到实时的值
-->
<script type="text/javascript">
//获取 修改
function testField(){
//获取元素对象
var inp = document.getElementById("uname");
alert(inp.value);
//修改属性
inp.value = "修改后的属性";
inp.type = "button";
}
//getArrtibute("属性名") 和 setAttribute("属性名","属性值")
function testGetAndSet(){
alert(document.getElementById("uname").getAttribute("type"));
document.getElementById("uname").setAttribute("abc","测试getAttribute()和setAttribute()");
alert(document.getElementById("uname").getAttribute("abc"));
}
</script>
</head>
<body>
<h3>
js操作HTML的元素属性
</h3>
<input type="button" name="" id="" value="元素对象.属性名获取元素属性" onclick="testField()"/>
<input type="button" name="" id="" value="getAttribute()和setAttribute()" onclick="testGetAndSet()"/>
<hr />
用户名:<input type="text" name="uname" id="uname" value="先存放的12" />
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js操作元素内容</title>
<!--
操作元素内容
获取元素对象
获取
对象元素.innerHTML ==>当前元素的所有内容,包括标签
对象元素.innerText ==>当前元素的文本内容,不包括标签
修改:
对象元素.innerHTML = "新的值"; ==>HTML标签会被解析且覆盖新的值
对象元素.innerHTML = 对象元素.innerHTML+"新的值"; ==>HTML标签会被解析且追加到末尾
对象名.innerText = "新的值"; ==>HTML标签不会被解析且覆盖新的值
对象元素.innerText = 对象元素。innerTEXT+"新的值"; ==>HTML标签不会被解析且追加新的值
-->
<script type="text/javascript">
//获取元素内容
function getContext(){
//获取对象及其内容
alert(document.getElementById("div01").innerHTML);
alert(document.getElementById("div01").innerText);
}
//修改元素内容
function updateContext1(){
var div = document.getElementById("div01");
div.innerHTML = div.innerHTML + "<br />测试文本3";
}
function updateContext2(){
var div = document.getElementById("div01");
div.innerText = div.innerText + "<br />测试文本3";
}
</script>
<style type="text/css">
#div01{
width:400px;
height: 500px;
}
</style>
</head>
<body>
<h3>js操作元素内容学习</h3>
<input type="button" name="" id="" value="获取元素内容--innerHTML" onclick="getContext()"/>
<input type="button" name="" id="" value="修改元素内容--innerHTML" onclick ="updateContext2()" />
<hr />
<div id="div01">
测试文本1,
测试文本2。
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js操作元素的文档</title>
<!--
js操作HTML文档结构
增加节点
删除节点
第一种方式:
使用innerHTML:
div.innerHTML = div.innerHTML + "内容"; //增加节点
div.innerHTML = ""; //删除所有节点
父节点.removeChild(子节点对象); //删除指定的子节点 == 不适合table
第二种方式:见操作文档结构2
获取元素对象
var obj = document.createElement("标签名");
obj.属性名="新值";
最后记得追加 ===》元素对象.appendChild(obj);
删除同上: 父节点.removeChild(子节点对象);
-->
<script type="text/javascript">
//innerHTML添加节点
function testAdd(){
var divEle = document.getElementById("showdiv");
divEle.innerHTML = divEle.innerHTML + "<div><input type='file' name='' value='选择文件'/><input type='button' name='' id='' value='删除' onclick='testDelete(this)' /></div>";
}
//删除按钮
function testDelete(btn){
//获取父级div
var showdiv = document.getElementById("showdiv");
//获取要删除的子div
var parentDiv = btn.parentNode;
//父div删除子div
showdiv.removeChild(parentDiv);
}
</script>
</head>
<body>
<h3>js操作元素的文档结构</h3>
<input type="button" name="" id="" value="继续上传" onclick="testAdd()" />
<br /><hr />
<div id="showdiv">
<input type="file" name="" value="选择文件"/><input type='button' name='' id='' value='删除' onclick="testDelete(this);"/>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js操作元素的文档结构2</title>
<script type="text/javascript">
function testOpera(){
//获取元素对象
var showdiv = document.getElementById("showdiv");
//创建input元素对象
var inp = document.createElement("input");
inp.type = "file";
//创建input元素对象
var btn = document.createElement("input");
btn.type = "button";
btn.value = "删除";
//onclick也是属性
btn.onclick=function(){
showdiv.removeChild(inp);
showdiv.removeChild(btn);
showdiv.removeChild(br);
}
//创建换行符
var br = document.createElement("br");
//将创建的元素存放到div中
showdiv.appendChild(inp);
showdiv.appendChild(btn);
showdiv.appendChild(br);
}
</script>
</head>
<body>
<h3>js操作文档的结构2</h3>
<input type="button" name="" id="" value="继续上传" onclick="testOpera()" />
<br /><hr />
<div id="showdiv">
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js操作元素的样式</title>
<!--
js操作元素样式
获取元素对象
1.通过style属性
元素对象.style.样式名="样式值"; //添加或者修改样式
元素对象.style.样式名=""; //删除样式
注意:以上操作,操作的是HTML的style属性声明中的样式,而不是其他css代码中的样式
2.通过className
元素对象.className = "新的值"; 添加或者修改类选择器
元素对象.className = ""; 删除类样式
-->
<script type="text/javascript">
//js操作样式--style 添加 修改 删除 元素样式
function testChangeCss(){
var showdiv = document.getElementById("showdiv");
//添加样式的两种方法
//showdiv.style = "background-color:green"; //这种写法或者下面的写法
showdiv.style.backgroundColor = "#FF0000";
//修改样式
showdiv.style.border = "solid 2px #00FF00";
//删除样式
showdiv.style.width= "";
}
//js操作样式 -- className
function testOperaCss(){
var div01 = document.getElementById("div01");
//获取
alert(div01.className);
//添加 或者 修改
div01.className = "common2";
// //删除
// div01.className = "";
}
</script>
<style type="text/css">
#showdiv{
width:400px;
height: 500px;
}
.common{
width:400px;
height: 500px;
border: 1px solid red;
}
.common2{
width:400px;
height: 500px;
border: 1px solid red;
background-color: aqua;
}
</style>
</head>
<body>
<h3>js操作元素的样式</h3>
<input type="button" name="" id="" value="style增删改样式" onclick="testChangeCss()"/>
<input type="button" name="" id="" value="通过class修改样式" onclick="testOperaCss()"/>
<br /><hr />
<div id="showdiv">
</div>
<div id="div01" class="common">
</div>
</body>
</html>8.JS操作表格
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>操作表格</title>
<!--
js 操作表格
1.删除行
行对象.rowIndex //返回行对象的下标
表格对象.deleteRow(行对象.rowIndex )
-->
<!--js代码区域-->
<script type="text/javascript">
//删除行
function deleteTr(btn){
//获取表格对象
var table = document.getElementById("bookTable");
//获取要删除的行对象
var tr = btn.parentNode.parentNode;
//删除
table.deleteRow(tr.rowIndex);
}
//修改表格
function updateRow(btn){
//获取父节点的父节点 ==>行对象
var tr = btn.parentNode.parentNode;
//获取需要修改的单元格
var cell = tr.cells[4]
if(!isNaN(Number(cell.innerHTML))){
//修改单元格
cell.innerHTML = "<input type='text' value='" +cell.innerHTML +"' onblur='updateRow2(this)'/>";
};
}
//失去焦点修改值
function updateRow2(inpText){
//获取父节点的父节点 ==>行对象
var tr = inpText.parentNode.parentNode;
//获取需要修改的单元格
var cell = tr.cells[4]
//失去焦点将值赋给单元格
cell.innerHTML = inpText.value;
}
</script>
<style type="text/css">
#bookTable tr{
height: 35px;
}
body{
text-align: center;
}
</style>
</head>
<body>
<h3 align="center">js操作表格</h3>
<input type="button" name="" id="" value="添加行" />
<input type="button" name="" id="" value="删除行" disabled="disabled"/>
<input type="button" name="" id="" value="复制行" disabled="disabled"/>
<br /><hr />
<table id = "bookTable" border="2px" cellspacing="1px" cellpadding="3px" align="center">
<tr align="center" style="font-weight: bold;">
<td><input type = "checkbox" name = "chk" id = "chk" onclick="" /></td>
<td width = "200px;">书名</td>
<td width = "100px;">作者</td>
<td width = "100px;">价格</td>
<td width = "100px;">数量</td>
<td width = "200px;">操作</td>
</tr>
<tr>
<td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td>
<td>Thinking in Java</td>
<td>jason</td>
<td>99.45</td>
<td id="cell">30</td>
<td>
<input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/>
<input type="button" name="" id="" value="删除" onclick="deleteTr(this)"/>
</td>
</tr>
<tr>
<td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td>
<td>Java Web 开发详解</td>
<td>孙鑫</td>
<td>1000</td>
<td>1</td>
<td>
<input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/>
<input type="button" name="" id="" value="删除" onclick="deleteTr(this)"s/>
</td>
</tr>
<tr>
<td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td>
<td>JSP应用开发详解</td>
<td>电子工业出版社</td>
<td>34</td>
<td>90</td>
<td>
<input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/>
<input type="button" name="" id="" value="删除" onclick="deleteTr(this)"/>
</td>
</tr>
</table>
<h1 style="color:red">上面的功能 和 复选框暂时没写</h1>
</body>
</html>9.JS操作form表单
<!DOCTYPE html>
<!--p43 开头-->
<html>
<head>
<meta charset="UTF-8">
<title>js操作form表单</title>
<!--
js操作form表单
1.获取form表单对象
使用id 或者 表单的name属性
2.获取form下的所有表单元素对象集合
fm.elements
3.form 表单的常用方法
表单对象.submit(); //提交表单数据
4.form 的属性的操作
表单对象.action = "新的值"; //动态改变数据提交路径
表单对象.method = "新的值"; //动态的改变提交方式
5.表单元素的通用属性
只读模式 readonly 只读会提交
关闭模式 disable 禁用不提交
-->
<script type="text/javascript">
function testForm(){
//获取form表单对象
var fm = document.getElementById("fm");
//使用form表单的name属性值来获取form表单对象==》form特殊,其他不行
var frm = document.frm; //===>获取的结果和上面完全一样
// alert(frm===fm);
//获取form表元素对象集合
// alert(fm.elements.length);
//form 表单的常用方法
// fm.submit(); //提交,很重要
fm.reset(); //重置
//form表单的属性操作
fm.action="https://www.baidu.com/s";
}
</script>
</head>
<body>
<h3>js操作form表单</h3>
<input type="button" name="" id="" value="测试js操作form" onclick="testForm()"/>
<br /><hr />
<form action="#" method="get" id="fm" name="frm">
<b>用户名</b>: <input type="texf" name="wd" id="uname" value="" /><br /><br />
密码:<input type="password" name="pwd" id="pwd" value="" /><br /><br />
<input type="text" name="只读会提交" id="" value="只读" readonly="readonly" /><br />
<input type="text" name="关闭不提交" id="" value="禁用" disabled="disabled" /><br />
<input type="submit" name="" id="" value="登录"/>
</form>
</body>
</html>10.JS中的事件机制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js的事件机制学习1</title>
<!--
解释:当一位满足一定的条件后,会触发某类事务的执行
作用:主要结合js的函数来使用
一个事件可以添加多个监听时间,已 ; 分开
内容:
1.单双机事件
单击:onclick
双击:ondblclick
2.鼠标事件
onmousemove 鼠标停在
onmouseover 鼠标移动
onmouseout 鼠标移出
3.键盘事件
onkeyup 键盘弹起
onkeydown 键盘按下
4.焦点事件
onblur
onfocus
5.页面加载事件
onload
注意:
js中添加事件的第一种方式:直接添加监听函数
js的事件只在当前HTML元素有效
-->
<script type="text/javascript">
//单击事件
function testOnclick(){
alert("单击事件!!");
}
//双击事件
function testOndblclick(){
alert("双击事件!!!");
}
//鼠标事件
function testOnmouseover(){
alert("我是鼠标悬停事件!!!");
}
//鼠标移动
function testOnmousemove(){
alert("我被移动了!!!");
}
//移出区域
function testOnmouseout(){
alert("被移出了!!");
}
//键盘事件
function testOnkeyup(){
alert("我是键盘弹起事件!!!");
}
function testOnkeydown(){
alert("我是键盘下压事件!!!");
}
//焦点事件
function testonfocus(){
document.getElementById("showDiv1").innerHTML= "<br/>获取焦点";
// alert("获取焦点事件");
}
function testOnblur(){
alert("失去焦点事件!!!");
}
//页面加载
function testOnload(){
alert("我是页面加载事件!!!");
}
</script>
<style>
#showDiv1{
width: 200px;
height: 200px;
border: solid 2px;
background: border-box;
}
</style>
</head>
<body onload="testOnload()">
<h2>js事件机制的学习1</h2>
<input type="button" name="" id="" value="测试单击" onclick="testOnclick()"/>
<input type="button" name="" id="" value="测试双击" ondblclick="testOndblclick()" />
testOnload();
<br />
<br />
<br />
<div id = "showDiv1" onmouseover="testOnmouseover();" onmousemove="testOnmousemove();" onmouseout="testOnmouseout()"></div>
<br /><hr />
键盘事件学习
键盘弹起事件:<input type="text" name="" id="" value="" onkeyup="testOnkeyup()"/><br />
键盘下压事件: <input type="text" name="" id="" value="" onkeydown="testOnkeydown()"/>
<hr />
焦点事件学习:
获取焦点:<input type="text" name="" id="" value="" onfocus="testonfocus()"/>
<br />
失去焦点:<input type="text" name="" id="" value="" onblur="testOnblur()"/>
</body>
</html>
<script type="text/javascript">
testOnload();
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js事件机制学习2</title>
<!--
1.给合适的HTML标签加上合适的事件
1.onchange --- select下拉选
2.onload ---body
3.鼠标键盘 ==>比如登录注册时
2.给HTML添加多个事件时,注意事件的冲突
3.事件的阻断
当事件监听的函数将返回值给事件时:false阻断,true则继续
4.超链接调用js函数
<a href="javascript:函数()"></a>
-->
<script type="text/javascript">
//值改变事件
function testOnchange(btn){
// alert(document.getElementById(btn).value);
alert("改变了!!!");
}
//事件冲突
function testOnclick(){
alert("单击事件!!!");
}
function testOndblclick(){
alert("双击事件!!!");
}
//事件的阻断!!!
function testBreak(){
alert("事件的阻断!!");
return false;
}
//超链接调用js函数
function testHref(){
alert("这是超链接调用js函数!!!");
}
</script>
</head>
<body>
值改变事件:<input type="text" name="" id="inp1" value="" onchange="testOnchange(this);"/>
<br />
<br />
<select name="" id="sel1" onchange="testOnchange(this);">
<option value="">北京</option>
<option value="">上海</option>
<option value="">赣州</option>
<option value="">深圳</option>
</select>
<hr />
事件的冲突:<br />
<input type="button" name="" id="" value="事件的冲突事件" onclick="testOnclick()" ondblclick="testOndblclick()"/>
<br />
事件的阻断:
<a href="https://www.baidu.com/" target="_blank" onclick="return testBreak()" >点击打开百度</a>
<br />
超链接调用js函数
<a href="javascript:testHref()">超链接调用js函数!!!</a>
</body>
</html>11.JS中的正则表达式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js中的正则表达式</title>
<script type="text/javascript">
//$1反向引用
var str = "a1898989b2c3d4";
str = str.replace(/(d+)/g,'<span style="color:red">$1</span>')
document.write("<br>"+str)
str = str.replace(/(d+)/g,'<span style="color:red">1</span>')
document.write("<br>"+str)
var date = "12/25/2018"
//用一条语句将其输出成"2018-12-25"
date1 = date.replace(/(d{1,})/(d{1,})/(d{4})/,'$3-$1-$2')
document.write("<br>"+date1)
</script>
</head>
<body>
</body>
</html>
评论 (0)