1.javascript入门
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript入门</title>
<!--
html:负责网页结构
css:负责网页美观
javascript:负责用户与浏览器交互
-->
<!--用javascript来校验用户名(4-14位字母或数字)-->
<script type="text/javascript">
function checkName(){
//获取用户输入的内容
var userName = document.getElementById("userName").value;
//正则表达式
var reg = /^[a-z0-9]{4,14}$/i;
if(!reg.test(userName)){
alert("用户名格式不对");
return false;
}
return true;
</script>
2.运算符
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>运算符</title>
<!--
1)算数运算符:+ - * / %
2)比较运算符:> < >= <= ==
3)逻辑运算符:&& || !
4)三目运算符:表达式?true的结果:false的结果
-->
<script type="text/javascript">
var a = 10;
var b = true;
document.write("结果为:"+(a+b)+"<br/>");
var age = 20;
document.write(age > 18 ? "未成年" : "未成年人");
</script>
</head>
<body>
</body>
</html>
3.javascript数据类型和运算符
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript数据类型和运算符</title>
</head>
<!--
javascript的使用方法:
(1)内部js:
(a)在html页面中使用<script>标签,在<script>标签中写js内容
(b)弊端:和html代码混杂在一起,不好维护,不好重用
(2)外部:
-->
<script type="text/javascript">
/*
常用函数:
alert("提示框");
document.write("向浏览器输出内容")
*/
//alert("提示框");
//document.write("输出内容");
</script>
<!--导入外部js文件-->
<script src="01.javascript数据类型和运算符.js"></script>
<body>
</body>
</html>
4.javascript变量和数据类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js变量和数据类型</title>
<script type="text/javascript">
/*
(1)定义和赋值变量:var 变量名 = 值
a)使用var关键字定义变量,var课以省略,但是bu建议省略var
b)在js中可以重复定义变量,后面定义的变量会覆盖前面的变量
c)js是弱类型语言,使用var来定义任何数据类型
d)js中变量的类型是由变量的值决定的,所以定义不赋值的变量,就是一个未定义变量undefined
typeof(变量):查看变量的数据类型
(2)js数据类型:
a)number
b)string
c)boolean
d)object:对象类型
*/
var a = 10;
var b = 3.14;
var c = 'c';
var d = "hello";
var e = true;
var f = new Object();
document.write("a的值为:"+a+",a的数据类型是:"+typeof(a)+"<br/>");
document.write("b的值为:"+b+",a的数据类型是:"+typeof(b)+"<br/>");
document.write("c的值为:"+c+",a的数据类型是:"+typeof(c)+"<br/>");
document.write("d的值为:"+d+",a的数据类型是:"+typeof(d)+"<br/>");
document.write("e的值为:"+e+",a的数据类型是:"+typeof(e)+"<br/>");
document.write("f的值为:"+f+",a的数据类型是:"+typeof(f)+"<br/>");
</script>
</head>
<body>
</body>
</html>
5.javascript类型转换函数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>类型转换函数</title>
<script type="text/javascript">
/*
1.string字符串转换成整数:parseInt(变量)
注意:
使用parseInt函数转换(a10不可以转换,10a10可以转换为10)
2.字符串string转换为小数:parseFloat(变量)
*/
var a = "10";
document.write("a的类型是(转换前):"+typeof(a)+"<br/>");
a = parseInt(a);
document.write("a的类型是(转换后):"+typeof(a)+"<br/>");
var b = "3.14";
b = parseFloat(b);
document.write("b的类型是(转换后):"+typeof(b)+",值为:"+b+"<br/>");
</script>
</head>
<body>
</body>
</html>
6.流程控制语句for-in
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>for-in(类似于java的增强for循环)</title>
<script type="text/javascript">
/*
for-in语句:
for(var 遍历 in 数组/对象){
}
作用:
1)遍历数组
2)遍历对象
*/
//定义一个数组
var arr = [10,20,30,40];
//遍历数组
for(var i = 0; i < arr.length; i++){
document.write(arr[i]+",");
}
document.write("<br/>");
//使用for-in遍历
for(var i in arr){
document.write(arr[i]+",");
}
document.write("<br/>");
//定义对象
function Person(name,age){
this.name = name;
this.age = age;
}
//创建对象
var p = new Person("eric",20);
//遍历对象
//用p[i]形式来获取属性的值
for(var i in p){
document.write(p[i] + "<br/>");
}
</script>
</head>
<body>
</body>
</html>
7.流程控制语句if,switch,for,while,do-while
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
/*
(1)if语句:
条件可以是:
布尔值:true 成立; false 不成立
number:非0 成立; 0 不成立
string:非空字符串 成立; 空字符串 不成立
object:非null 成立; null 不成立
*/
/*
if(new Object){
alert("条件成立");
}else{
alert("条件不成立");
}
*/
/*
(2)switch语句
switch(变量){
case 选项1:
break;
case 选项2:
break;
default:
默认;
}
case条件:
1)可以是常量:string,number
2)可以是变量(java不能是变量)
3)可以是表达式(java不能是表达式)
*/
/*
(3)for语句
/*
(4)while语句(true的时候才进入循环)
while(表达式){
语句
}
*/
/*
(5)do while
*/
var i = "a";
switch(i){
case "a":
document.write("你选择了a");
break;
case "b":
document.write("你选择了b");
break;
case "c":
document.write("你选择了c");
break;
default:
document.write("你选择了其它");
}
</script>
</head>
<body>
</body>
</html>
8.流程控制语句with
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>with语句</title>
<script type="text/javascript">
/*
with语句:方便函数的调用
with(对象){
直接写对象的方法,无需写对象的名称
}
*/
with(document){
for(var i = 1; i <= 5; i++){
for(var j = 1; j <= i; j++){
write("* ");
}
write("<br/>");
}
}
</script>
</head>
<body>
</body>
</html>
9.函数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>函数</title>
<script type="text/javascript">
/*
定义函数:
function 函数名称(形式参数列表){
语句
}
调用函数:
函数名称(实际参数列表);
注意:
(1)js的函数使用function定义,但是形式参数列表不能使用var关键字
(2)js的函数可以有返回值,直接使用return关键字即可,不需要声明返回值类型
(3)js没有重载,如果方法一样,后面的会覆盖前面的方法
(4)js中的形式参数和实际参数可以不一致,依然可以调用
(实参>形参,结果为:,实参<形参,结果为:NaN)
(5)js的每个函数中都隐藏了一个叫argument的数组,这个数组用于接收函数调用时传递过来的实际参数值
(6)arguments数组接收完实际参数后,会依次从左到右赋值给形式参数如果实际参数大于形式参
数,则丢失剩下的实际参数
*/
function add(a,b){
var result = a + b;
document.write("两个参数的结果为:"+result);
//return result;
}
function add(a,b,c){
alert (arguments.length);
var result = a+b+c;
document.write("三个参数的结果为:"+result);
}
//var s = add(10,20);
//document.write("返回值:"+s);
add(10,30);
</script>
</head>
<body>
</body>
</html>
10.内置对象(String对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>内置对象(方法)(String对象)(</title>
<script type="text/javascript">
/*
内置对象:
String
Number
Boolean
*/
//定义String对象
//方法一:
/*
var str1 = new String("hello");
var str2 = new String("hello");
document.wrete("结果:"+(str1==str2)+"<br/>");
//valueOf()返回对象的字符串内容
document.write("结果:"+(str1.valueOf() == str2.valueOf()));
*/
//方法二:
/*
var str1 = "hello";
var str2 = "hello";
document.write("结果:"+(str1==str2)+"<br/>");
*/
/*
常用方法:
charAt():返回指定索引(下标)的内容;
indexOf():返回首次出现的字符的索引位置;
lastIndexOf():返回最后出现指定字符的索引位置;
fontcolor():直接给字符串添加颜色;
replace():替换指定字符串;
split():使用指定字符串切割字符串,返回指定字符串数组;
substring(start,end):截取字符串;
substring(strat,[length]):截取字符串;
*/
var str = "hellojava";
document.write(str.charAt(4)+"<br/>");
document.write(str.indexOf("a")+"<br/>");
document.write(str.lastIndexOf("a")+"<br/>");
document.write(str.fontcolor("red")+"<br/>");
document.write(str.replace("java","web"+"<br/>"));
document.write(str.substring(5,9)+"<br/>");
document.write(str.substr(5,4)+"<br/>");
/*
var str = "java-net-php-平面";
var strArray = str.split("-");
for(var i = 0; i < strArray.length; i++){
document.write(strArray[i]+",");
}
*/
</script>
</head>
<body>
</body>
</html>
11.内置对象(Number对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>内置对象(Number对象)</title>
<script type="text/javascript">
//方法一:定义Number对象
var num1 = new Number(20);
var num2 = new Number(20);
document.write((num1 == num2) + "<br/>");
document.write(num1.valueOf() == num2.valueOf());
//方法二:定义Number对象
var num1 = 20;
var num2 = 20;
</script>
</head>
<body>
</body>
</html>
12.内置对象(Boolean对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>内置方法(Boolean对象)</title>
<script type="text/javascript">
var b1 = new Boolean(true);
var b2 = new Boolean(false);
</script>
</head>
<body>
</body>
</html>
13.内置对象(Math对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>内置对象(Math对象)</title>
<script type="text/javascript">
/*
常用方法:
1)ceil():向上取整
2)floor():向下取整
3)round():四舍五入取整
4)random():生成一个随机的0-1的整数
5)max():返回最大值
6)min():返回最小值
*/
var num = 3.14;
document.write(Math.ceil(num)+"<br/>");
document.write(Math.floor(num)+"<br/>");
document.write(Math.round(num)+"<br/>");
document.write(Math.random(num)+"<br/>");
document.write(Math.max(num)+"<br/>");
document.write(Math.min(num)+"<br/>");
</script>
</head>
<body>
</body>
</html>
14.内置对象(Date对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>内置对象(Date对象)</title>
<script type="text/javascript">
//创建日期
var date = new Date();
document.write(date+"<br/>");
//打印日期:格式 2018年02月18日14时30分40秒
//(java中用simpleDateFormat对象 yyyy-MM-dd格式化)
//获取年份
document.write(date.getFullYear()+"年");
//获取月份(返回的是0-11月,所以要加上1)
document.write(date.getMonth()+1+"月");
//获取日
document.write(date.getDate()+"日");
//获取时
document.write(date.getHours()+"时");
//获取分
document.write(date.getMinutes()+"分");
//获取秒
document.write(date.getSeconds()+"秒");
//获取星期
document.write("星期"+date.getDay());
</script>
</head>
<body>
</body>
</html>
15.内置对象(Array对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Array数组</title>
<script type="text/javascript">
//方法一:创建数组
/*
var arr = new Array(3);
//给数组赋值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
//遍历数组
for(var i = 0; i < arr.length; i++){
document.write(arr[i]+"<br/>");
}
*/
//方法二:可以不指定长度
/*
var arr = new Array();
//给数组赋值
arr[0] = 10;
arr[1] = "hello";
arr[2] = "ture";
//遍历数组
for(var i = 0; i < arr.length; i++){
document.write(arr[i]+"<br/>");
}
*/
//方法三:指定具体内容
/*
var arr = new Array(20,true,"hello");
for(var i = 0; i < arr.length; i++){
document.write(arr[i]+"<br/>");
}
*/
//方法四:
/*
var arr = [10,true,"hello"];
for(var i = 0; i < arr.length; i++){
document.write(arr[i]+"<br/>");
}
*/
/*
常用方法:
1)join():使用指定字符串,把所有数组元素拼接,最终组成一个新的字符串(java php --> java-php)
2)reverse():反转数组中的元素
*/
var arr = ["java",".net","php"];
var str = arr.join("-");
document.write(str);
document.write("<br/>");
for(var i = 0; i <arr.length; i++){
document.write(arr[i]);
}
document.write("<br/>");
arr1 = arr.reverse();
for(var i = 0; i <arr.length; i++){
document.write(arr1[i]);
}
</script>
</head>
<body>
</body>
</html>
16.自定义方法(方法1)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>自定义对象(方法1)</title>
<script type="text/javascript">
/*
java中用class定义对象
js中用function定义对象
*/
/*
方式一:
function 对象名称(形式参数){
定义属性
定义方法
}
*/
function Person(name,age){
//定义属性
this.name = name;
this.age = age;
//定义方法
this.say = function(){
alert("这是一个对象的方法");
}
}
//创建对象
var p = new Person("张三",18);
//查看属性值
document.write(p.name);
document.write(p.age);
//调用方法
p.say();
//使用for-in遍历数组
for(var i in p){
document.write(p[i]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
17.自定义方法(方法2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>自定义对象(方法二)</title>
<script type="text/javascript">
/*
定义对象(方式二):无参数的构造方式
*/
//定义对象
function Person(){
}
//创建对象
var p = new Person();
//追加属性
p.name = "张三";
p.age = 18;
//追加方法
p.say = function(){
alert("这是一个函数");
}
//查看属性值
document.write(p.name);
document.write(p.age);
//调用对象方法
p.say();
document.write("<br/>");
for(var i in p){
document.write(p[i]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
18.自定义方法(方法3)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>自定义方法三</title>
<script type="text/javascript">
/*
定义对象(方式三):
*/
//创建对象
//Object可以作为任意对象的模板
var p = new Object();
//追加属性
p.name = "张三";
p.age = 18;
//追加方法
p.say = function(){
alert("这是一个函数");
}
//查看属性值
document.write(p.name);
document.write(p.age);
//调用对象方法
p.say();
document.write("<br/>");
for(var i in p){
document.write(p[i]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
19.自定义方法(方法4)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>自定义方法四</title>
<script type="text/javascript">
/*
定义对象(方式四):使用字面量的形式创建对象
*/
//创建对象
var p = {
//定义属性(属性名:属性值),用","分隔
"name":"张三",
"age":"18",
//定义方法
"say":function(){
alert("这是一个方法");
}
};
//查看属性值
document.write(p.name);
document.write(p.age);
//调用对象方法
p.say();
document.write("<br/>");
for(var i in p){
document.write(p[i]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
20.原型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原型</title>
<!--
问题:不使用ArrayUtil工具,但也想实现search和max方法的功能
预期解决方法:想把search和max方法设计到Array内置对象中
问题:如何给Array对象扩展这两个方法
使用原型属性给Array对象添加方法
什么是原型:
(1)js的每隔对象中都包含有原型属性(prototype)
(2)如果某个对象的原型属性添加了方法,那么添加的这个方法就会自动的添加到当前对象的方法中
cunction Array(){
//属性
this.prototype();//原型对象
}
-->
<script src="ArrayUtil.js"></script>
<script type="text/javascript">
/*
给Array追加一个search和max方法
*/
Array.prototype.search = function(){
//遍历
for(var i = 0; i < this.length; i++){
if(this[i] == target){
return i;
}
}
return -1;
}
Array.prototype.max = function(){
//存储最大值
var max = this(0);
for(var i = 1; i < this.length; i++){
if(this[i] > max){
max = this[i];
}
}
return max;
}
var arr = [10,43,21,65,3,87];
//创建ArrayUtil对象
var arrayutil = new ArrayUtil();
var index = arrayutil.search(arr,21);
document.write("位置是:"+index);
var max = arrayutil.max(arr);
document.write("最大值是:"+max);
</script>
</head>
<body>
</body>
</html>
21.BOM编程(window对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BOM编程(window对象)</title>
<script type="text/javascript">
/*
(1)open():在一个窗口中打开页面
_self / _blank: 在原 / 新窗口打开页面
width height 窗口宽和高
toolbar=1/0 :是否显示任务栏
(2)setInterval():设置定时器(无数次循环)
参数1:指定时的任务(方法/函数)
参数2:设置定时打开的毫秒数
(3)clearInteral():清除定时器
(4)setTimeout():设置定时器(只执行一次)
(5)clearTimeout():清除定时器
(6)alert():提示框
(7)confirm():确认的提示框
(8)propmt():输入提示框
*/
//(1)open():在一个窗口中打开页面
function testOpen(){
window.open("05.例:网页时钟.html","_blank","windth=300px;hight=300px;toolbar=0");
}
var taskId;
//2)setInterval():设置定时器
function testInterval(){
taskId = window.setInterval("testOpen()",3000);
}
//(3)clearInteral():清除定时器
function testClearInteral(){
window.clearInterval("taskId");
}
//(6)alert():提示框
function testAlert(){
window.alert("提示框");
}
//(7)confirm():确认的提示框
function testConfirm(){
var flag = window.confirm("确认删除吗?一但删除将不能恢复!请慎重");
if(flag){
alert("正在删除");
}else{
alert("取消删除");
}
}
//(8)propmt():输入提示框
function testPrompt(){
var flag = window.prompt("请输入密码");
if(flag == true){
alert("密码正确,正在转账") ;
}else{
alert("密码错误,请重新输入");
}
}
</script>
</head>
<body>
<input type="button" value="open()" οnclick="testOpen()"/>
<input type="button" value="setInteval()" οnclick="testInterval()" />
<input type="button" value="clearInteval()" οnclick="testClearInterval()" />
<input type="button" value="alert()" οnclick="testAlert()"/>
<input type="button" value="confirm()" οnclick="testConfirm()"/>
<input type="button" value="prompt()" οnclick="testPrompt()"/>
</body>
</html>
22.BOM编程(location)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BOM编程(location对象)</title>
<script type="text/javascript">
/*
(1)href属性:代表地址栏的URL(统一资源定位符)
作用:获取url或设置url
(2)reload方法:刷新当前页面
*/
//(1)href属性
function testHref(){
window.location.href="05.例:网页时钟.html";
}
//(2)reload方法
function testReload(){
//刷新当前页面
window.location.reload();
}
function testRefresh(){
//实现定时刷新
window.setInterval("testReload()",2000);
}
</script>
</head>
<body>
<input type="button" value="跳转" οnclick="testHref()"/>
<input type="button" value="定时刷新" οnclick="testReload"/>
</body>
</html>
23.BOM编程(history)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BOM编程(history对象)</title>
<script type="text/javascript">
/*
history:
(1)forward():前进到下一页
(2)back():后退到上一页
(3)go():跳转到某一页(正整数:前进; 负整数:后退)
*/
function testForward(){
//window.history.forward();
window.history.go(-1);
}
function testBack(){
//window.history.back();
window.history.go(1);
}
</script>
</head>
<body>
<input type="button" value="前进" οnclick="testForward()"/>
<input type="button" value="后退" οnclick="testBack()"/>
</body>
</html>
24.BOM编程(screen对象)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BOM编程(screen对象)</title>
<script type="text/javascript">
/*
*/
document.write(window.screen.availWidth+"<br/>");
document.write(window.screen.availHeight+"<br/>");
document.write(window.screen.width+"<br/>");
document.write(window.screen.height+"<br/>");
</script>
</head>
<body>
</body>
</html>
25.事件编程
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>事件编程</title>
<script type="text/javascript">
/*
js事件编程的三个要素:
(1)事件源:html标签
(2)事件:click dblclick mouseover......
(3)监听器:函数
js事件分类:
(1)点击相关:
单击:onclick
双击:ondblclick
(2)焦点相关:
聚焦:onfocus
失去焦点:onblur
(3)选项相关:
改变选项:onchange
(4)鼠标相关:
鼠标经过:onmouseover
鼠标移除:onmousout
(5)页面加载:
页面加载:onload
*/
<!-- (2)监听器-->
function test(){
alert("触发了事件");
}
</script>
</head>
<body>
<!-- (1)事件源 -->
<!-- (3)onclick 注册监听器 -->
<input type="button" value="按钮" οnclick="test()"/>
</body>
</html>
26.DOM编程入门
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM编程入门</title>
<script type="text/javascript">
/*
DOM编程:
文档对象模型编程(树状图)
步骤:
(1)找到需要控制的标签对象
(2)通过标签对象的属性和方法改变标签
document对象:
代表了整个html文档
如果要找到对应的标签对象,就需要从document对象开始查询
*/
</script>
</head>
<body>
</body>
</html>
27.通过document对象的集合查询标签
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM编程(查询标签对象方法)(通过document对象的集合)</title>
</head>
<body>
<form ><img src=""/><img src=""/><a href=""></a></form>
<form ><img src=""/></form>
</body>
<script type="text/javascript">
/*
通过document对象的集合
作用:获取多个或者同类标签
all:
froms:获取from标签对象
images:获取img标签对象
link:获取a超链接标签对象
*/
//var nodeList = document.all;//返回所有标签对象的数组
//var nodeList = document.forms;//返回from标签对象的数组
//var nodeList = document.images;//返回img标签对象的数组
var nodeList = document.links;//返回from标签对象的数组
//遍历标签对象
//nodeName:获取标签名称
for(var i = 0; i < nodeList.length; i++){
alert(nodeList[i].nodeName);
}
</script>
</html>
28.通过关系查询标签对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>通过关系查询标签对象</title>
<script type="text/javascript">
/*
树状图(节点关系(Node))
(1)父节点:parent属性
(2)子节点:child属性
第一个子节点:firstChild
最后一个子节点:lastChild
(3)兄弟节点:sibling属性
上一个兄弟节点:previousSibling
下一个兄弟节点:nextSibling
*/
</script>
</head>
<body>
<form>
<a href="">超链接</a>
<input type="text"/>
<input type="button"/>
</form>
<form>
<a href="">超链接</a>
</form>
</body>
<script type="text/javascript">
/*
树状图(节点关系(Node))
(1)父节点:parent属性
(2)子节点:child属性
第一个子节点:firstChild
最后一个子节点:lastChild
(3)兄弟节点:sibling属性
上一个兄弟节点:previousSibling
下一个兄弟节点:nextSibling
注意:
(1)childNodes属性,lastChild属性,firstChild属性获取的子节点包含了以下元素
标签1 空格3 换行3 注释8
(2)如何在这些子节点中筛选出标签(nodeType)
使用nodeType取出值为1的所有标签即可
*/
//得到超链接a标签(获取第一个a标签的对象)
aNode = document.links[0];
//得到标签
var formNode = aNode.parentNode;
alert("formNode.nodeName");
//得到form的子节点
var nodeList = formNode.childNodes;
for(var i = 0; i < nodeList.length; i++){
if(nodeList[i].nodeType==1){
document.write(nodeList[i].nodeName+",字节类型:"+nodeList[i].nodeType+"<br/>");
}
}
//第一个子节点
var firstChid = formNode.firstChild;
alert(firstChild.nodeName);
//最后一个子节点
var lastChid = formNode.lastChild;
alert(lastChild.nodeName);
var aNode = document.links[1];
//得到下一个兄弟节点
var next = aNode.nextSibling;
alert(next.nodeName);
//得到上一个兄弟节点
var previous = next.previousSibling;
alert(previous.nodeName);
</script>
</html>
29.通过document方法查询标签对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>通过document方法查询标签对象</title>
<script type="text/javascript">
/*
document.getElementById("id属性值"):最常用
注意:
(1)使用该方法获取的标签一定要有id属性
(2)在同一个html页面中不要出现两个同名的id
document.getElementsByName("name属性值"):获取同name属性名的标签
注意:
(1)使用该方法获取的属性一定要有name标签
document.getElementsByTagName("标签名"):获取相同标签名的标签列表
*/
function getValue(){
//获取输入框的内容
//(方式1)得到输入框标签对象
//var useName = document.getElementById("useName");
//(方式2)
//var userName = document.getElementsByName("user")[0];
//(方式3)
var userName = document.getElementsByTagName("input")[0];
//获取标签对象的value属性值
alert(userName.value);
}
</script>
</head>
<body>
用户名:<input type="text" id="useName" name="user" οnblur="getValue()"/>
</body>
</html>
30.修改标签对象属性
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>修改标签对象属性</title>
</head>
<body>
<span id="mySpan"></span>
<input type="text" id="userName" value="4-12位的字母或数字"/>
<hr/>
<img src="图片/01.jpg" width="100px" height="100px"/>
<input type="button" value="切换图片" οnclick="changeImg()"/>
<hr/>
<input type="button" value="全选" οnclick="quanxuan()"/>
<input type="checkbox" value="篮球" name="hobit"/>篮球
<input type="checkbox" value="足球" name="hobit"/>足球
<input type="checkbox" value="羽毛球" name="hobit"/>羽毛球
</body>
<script type="text/javascript">
/*
常用的需要修改的属性:
(1)innerHTML属性:修改标签体内容
<span>xxx</sspan> <div></div> <select></select>
innerHTML:设置标签内的内容
inner Text:(在IE中可用,浏览器兼容性问题)
(2)value属性:修改value属性值
input type="text"
(3)src属性:修改图片的src属性
(4)checked属性:修改单选或者多选的默认值
<input type="radio"/"checked" checked=""/>
true表示选中状态 false表示没选中状态
*/
//获取到span标签对象
var mySpan = document.getElementById("mySpan");
//设置标签内的HTML内容
mySpan.innerHTML = "<h3>标题</h3>";
//获取input对象
var userName = document.getElementById("userName");
//清空value内容
userName.value = "";
function changeImg(){
//得到标签对象
var img = document.getElementsByTagName("img")[0];
img.src = "图片/02.jpg";
}
function quanxuan(){
//var lanqiu = document.getElementsByName("hobit")[0];
//alert(lanqiu.checked);
//lanqiu.checked = true;
var hobitList = document.getElementsByName("hobit");
for(var i=0; i<hobitList.length; i++){
hobitList[i].checked = true;
}
}
</script>
</html>
31.设置标签属性练习checked
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>设置标签属性练习checked属性</title>
<script type="text/javascript">
/*
//(方式一)
function checkAll(){
//获取item的选项
var itemList = document.getElementsByName("item");
for(var i=0; i<itemList.length; i++){
if(itemList[i].checked){
itemList[i].checked = false;
}else{
itemList[i].checked = true;
}
}
}
*/
//方式二(this代表当前对象,this传过来可以用一个变量(obj)去接)
//获取全选的input的checked状态
function checkAll(obj){
var status = obj.checked;
var itemList = document.getElementsByName("item");
for(var i=0; i<itemList.length; i++){
itemList[i].checked = status;
}
}
//总金额
function getSum(){
//判断哪些被选中
var itemList = document.getElementsByName("item");
var result = 0;
for(var i=0; i<itemList.length; i++){
if(itemList[i].checked = true){
//计算金额
var itemValue = itemList[i].value;
//value属性一定是string类型
//所以要强转(把String类型转换成number类型)
itemValue = parseInt(itemValue);
result += itemValue;
}
}
//把结果放到span中显示
var sumid = document.getElementById("sumid");
sumid.innerHTML = result+"元";
}
</script>
</head>
<body>
<div>商品列表</div>
<input type="checkbox" name="all" οnclick="checkAll(this)"/>全选<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑3000元<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑3500元<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑3800元<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑4200元<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑4500元<br/>
<input type="checkbox" name="item" value="3000"/>笔记本电脑5000元<br/>
<input type="checkbox" name="all" οnclick="checkAll(this)"/>全选<br/>
<input type="button" value="总金额" οnclick="getSum()"/><span id="sumid"></span>
</body>
</html>
32.标签对象方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>标签对象方法</title>
<script type="text/javascript">
/*
标签对象方法:
(1)添加相关的:
document.createElement("标签名") 创建节点(标签)对象
setAttribute("name","value") 设置节点(标签)的属性
(2)插入相关的:
appendChild(标签对象) 添加子节点对象
insertBefore(新标签对象,指定的对象) 在指定的对象面前添加子节点对象
(3)删除相关的:
removeChild("标签对象") 删除子节点
*/
//点击添加按钮,在按钮1的后面添加一个按钮2
function addItem(){
//创建一个按钮(标签)的对象
var input = document.createElement("input");
//设置按钮(标签)的属性
input.setAttribute("type","button");
input.setAttribute("value","按钮2")
//把新建的按钮插入到相应的html页面中
//得到body对象
var bodyNode = document.getElementsByTagName("body")[0];
//把新建的按钮2插入到body对象的子节点中
bodyNode.appendChild(input);
/*
//把新建的按钮2插入到“添加”和“按钮1”的中间
//得到按钮1对象
var btn1 = document.getElementById("btn1");
//把按钮2插入到按钮1的前面
bodyNode.insertBefore(input,btn1);
*/
}
//删除按钮
function delItem(){
//找到需要删除的节点对象
var bodyNode = document.getElementsByTagName("body")[0];
//获取最后一个子标签
var lastChild = bodyNode.lastChild;
//删除子标签
bodyNode.removeChild(lastChild);
}
</script>
</head>
<body>
<input type="button" value="添加" οnclick="addItem()"/>
<input type="button" value="删除" οnclick="delItem()"/>
<input type="button" value="按钮1" id="btn1"/>
</body>
</html>
33.正则表达式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>正则表达式</title>
<script type="text/javascript">
/*
创建正则表达式:var 变量 = /正则规则/
[a-z]:表示匹配字母
* :0个或多个元素
+ :1个或多个元素
? :0个或1个元素
{n,m}:大于n,小于m的个数
正则方法:
.test():用于匹配指定字符串
返回true:表示匹配成功
返回false:表示匹配不成功
注意:
在js的正则表达式中,如果遇到了符合规则的表达式,就表示匹配成功(与java有所不同)
如果需要和java一样完全匹配,需要添加边界符号
开始标记:^
结束标记:$
*/
var str = "abc";
var reg = /^[a-z]{2}$/;
if(reg.test(str)){
alert("匹配成功");
}else{
alert("匹配失败")
}
</script>
</head>
<body>
</body>
</html>