JavaScript相关

目录

功能

语法

注释

常用的两个客户端输出方法

document.write(str)

window.alert(str)

变量

变量的声明

变量的类型

数据类型转换

运算符

流程控制语句

数组

        数组的创建

二维数组

函数

全局和局部变量

拷贝传值和引用传值

拷贝传值

引用传址

匿名函数

事件

事件处理程序

 鼠标单击事件(onclick)

鼠标经过事件(onmouseover)

鼠标移开事件(onmouseout)

光标聚焦事件(onfocus)

光标失焦事件(onblur)

内容选中事件(onselect)

文本框内容改变事件(onchange)

加载事件(onload)

对象

分类

        内置对象

        BOM对象

        DOM对象

        自定义对象

使用{}

String

charAt(index)

indexOf()

lastIndexOf()

substr()

substring()

split():将一个字符串转成数组

Array

join()

reverse()

数组元素的删除和添加

Date

创建的方法

方法

Math

Number

BOM对象模型

简介

Window对象属性与方法

属性

方法

open()方法

定时器方法

screen屏幕对象

Location地址栏对象

history对象

DOM对象模型

DOM的分类

HTML节点树

DOM中节点类型

核心DOM中的公共的属性和方法

节点访问

查找标记的方法

对节点的属性操作

节点的创建

HTMLDOM

getElementById()

getElementsByTagName(tagName)

CSS DOM动态样式

DOM中Event对象

Form对象

form对象的属性

form对象的方法

form对象的事件

获取表单元素

事件返回值

提交和验证方法总结

常用:使用submit按钮,结合onsubmit事件来实现

submit按钮,结合onclick事件,实现表单的验证和提交

button按钮(普通按钮),结合submit()方法,实现表单验证提交

input对象

input对象的属性(以type=text为例)

input对象的方法

input对象的事件

select对象

select对象属性

option对象

option对象属性


功能

  • 表单验证:是JS最基本的功能。

  • 动态HTML:可以实现一些动态的、重复的效果。

  • 交互式:人机交互,通过键盘或鼠标,与网页中的元素进行交互

语法

        通过<script></script>来引入JS程序代码

注释

  • HTML的注释:<!—注释内容-->

  • CSS注释:/* 注释 */

  • JavaScript的注释:// 或 /*  多行注释 */

常用的两个客户端输出方法

document.write(str)

window.alert(str)

变量

变量的声明

var varname

变量的类型

数值型、字符型、布尔型、undefined、null、array、object、function

NaN:当将其它数据类型,转成数值型,转不过去,但程序又不能报错,这时将返回一个NaN的值

字符串:

        单引号和双引号之间可以相互嵌套

  •  单引号内只能嵌套双引号;

  • 双引号内只能嵌套单引号。

undefined:当一个变量定义,但未赋值时,将返回未定义型,未定义型的值只有一个undefined

数据类型转换

自动转换

手动转换

        Boolean()  其他类型->布尔型

        String()  其他类型->字符串型

        Number()  其他类型->数值型

数据类型

        typeof() 判断数据类型

        parseInt()从字符串中提取整数

        parseFloat()从字符串中提取浮点数

运算符

        数值运算符

        比较运算符

        逻辑运算符

        特殊运算符:new delete ...

流程控制语句

        条件

        循环

        选择

数组

        数组的创建

                new、array()

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>           
            //创建一个没有任何元素的数组
            var arr = new Array();
            //增加数组元素
            arr[0] = "张三";          
            arr[1] = "男";          
            arr[2] = 25;          
            arr[3] = "安徽";          
            document.write(arr);         
        </script>
    </head>
    <body>
    </body>
</html>

使用[]创建

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>          
            //使用[]方式创建一个数组
            var arr = ["张三","男",25,"安徽"];         
            document.write(arr);         
        </script>
    </head>
    <body>
    </body>
</html>

二维数组

函数

定义函数格式

function functionName([参数1][,参数2][,参数N]){
    函数的功能代码;
    [return 参数r]
}

全局和局部变量

使用函数范围划分变量范围,函数内位局部变量,函数外为全局变量

拷贝传值和引用传值

拷贝传值

基本数据类型都是“拷贝传值”。

  • 拷贝传值,就是将一个变量的值“拷贝”一份,传给了另一个变量。

  • 拷贝传值完之后,两个变量之间没有任何联系,修改其中一个变量的值,另一个不会改变。

  • 这两个变量之间,是相互独立的,没有任何联系

<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 var a=10;
 var b=a;
 a++;
 document.write("a的值为:"+a+"<br/>");
 document.write("b的值为:"+b);
 </script>
 </head>
 <body>
 </body>
</html>

引用传址

复合数据类型都是“引用传地址”

引用传址:将一个变量的数据地址,“拷贝”一份,传给另了另一个变量。这两个变量,指向“同一个地址”。

大家共享同一份数据。

如果其中一个变量的值发生了改变,那么,另一个变量的值也得变。要变一起变。

因此,这两个变量是有联系的,要变大家一起变

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            var arr1=[10,20,30,40];
            var arr2=arr1;
            arr1[1]=100;
            document.write("arr1[1]的值为:"+arr1[1]+"<br/>");
            document.write("arr2[1]的值为:"+arr2[1]);
        </script>
    </head>
    <body>
    </body>
</html>

匿名函数

即没有名字的函数。

  • 匿名函数,不能单独定义的,也不能单独调用。

  • 匿名函数,一般是作为数据给其它变量赋值的。可以给普通变量、数组元素、对象的属性赋值

事件

事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过侦听器(或者处理程序)来预定事件,以便事件发生的时候执行相应的代码

事件处理程序

我们用户在页面中进行的点击这个动作,鼠标移动的动作,网页页面加载完成的动作等,都可以称之为事件名称,即:onclick、mousemove、load等都是事件的名称。响应某个事件的函数则称为事件处理程序,或者叫做事件侦听器

6.png

 鼠标单击事件(onclick)

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            function fun1(){
                window.alert("欢迎来到php.cn")
            } 
            function fun2(){
                window.alert("你看,你还是点了我")
            }
        </script>
    </head>
    <body>
        <form>
            <input name="点我看看" type="button" value="点我看看" onclick="fun1()"/>
            <p onclick="fun2()">不要点我</p>
        </form>
    </body>
</html>

鼠标经过事件(onmouseover)

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,并执行onmouseover事件调用的程序

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            function fun(){
                window.alert("请确认四周没有人再点击提交")
            } 
        </script>
    </head>
    <body>
        <form>
            机密:
            <input name="txt" type="text" >
            <input name="" type="button" value="提交" onmouseover="fun()"/>
        </form>
    </body>
</html>

鼠标移开事件(onmouseout)

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            function fun(){
                window.alert("提交成功了")
            } 
        </script>
    </head>
    <body>
        <form>
            机密:
            <input name="txt" type="text" >
            <input name="" type="button" value="提交之后移开鼠标"  onmouseout="fun()"/>
        </form>
    </body>
</html>

光标聚焦事件(onfocus)

当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行。

如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数fun()。

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 function fun(){
 window.alert("请输入真实姓名")
 } 
 </script>
 </head>
 <body>
 <form>
 姓名:
 <input name="username" type="text" value="请输入姓名" onfocus="fun()" >
 </form>
 </body>
</html>

光标失焦事件(onblur)

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 function fun(){
 window.alert("请确认这是您的真实姓名")
 } 
 </script>
 </head>
 <body>
 <form>
 姓名:
 <input name="username" type="text" value="请输入姓名" onblur="fun()" >
 </form>
 </body>
</html>

内容选中事件(onselect)

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 function fun(){
 window.alert("这是个人简介,禁止复制")
 } 
 </script>
 </head>
 <body>
 <form>
 个性介绍:<br/><textarea name=" introduction" cols="30" rows="4" onselect="fun()">小明:
 PHP高级工程师
 全栈工程师</textarea>
 </form>
 </body>
</html>

文本框内容改变事件(onchange)

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 function fun(){
 window.alert("您刚刚修改了个人简介")
 }
 </script>
 </head>
 <body>
 <form>
 个性介绍:<br/><textarea name=" introduction" cols="30" rows="4" onchange="fun()">小明:
 PHP高级工程师
 全栈工程师</textarea>
 </form>
 </body>
</html>

加载事件(onload)

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 function fun(){
 window.alert("加载中???")
 }
 </script>
 </head>
 <body onload="fun()">
 欢迎来到php.cn
 </body>
</html>

对象

分类

        内置对象

                数组、日期、字符串等

        BOM对象

                浏览器组件

        DOM对象

                文档

        自定义对象

                如下例

使用new

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            //使用new关键字结合构造函数Object()来创建一个空的对象
            var info = new Object();
            //增加属性
            info.name = "张三";
            info.age = 20;
            //增加方法:将一个函数定义赋值给了对象属性,这时,对象属性变成了方法
            info.show=function(){
                var str="我叫"+info.name+"今年已经"+info.age+"岁了";
                return str;
            }
            //调用对象方法,并输出结果
            document.write(info.show());
        </script>
    </head>
    <body>
    </body>
</html>

使用{}

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>
        <script>
            //使用大括号{}来创建对象
            var info = {
            //增加属性
            name :"张三",
            age : 20,
            //增加方法:将一个函数定义赋值给了对象属性,这时,对象属性变成了方法
            show:function(){
                var str="我叫"+info.name+"今年已经"+info.age+"岁了";
                return str;
                }
            }
            //调用对象方法,并输出结果
            document.write(info.show());
        </script>
    </head>
    <body>
    </body>
</html>

String

<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script>
 var str="ASDfgh";
 document.write(str.length+"<br/>");
 document.write(str.toLowerCase()+"<br/>");
 document.write(str.toUpperCase()+"<br/>");
 </script>
 </head>
 <body>
 </body>
</html>

其他方法还有:

charAt(index)

  • 功能:返回指定下标位置的一个字符。如果没有找到,则返回空字符串。

  • 语法:strObj.charAt(index)

  • 参数:index是指定的一个索引号,根据index索引号来返回一个字符。

indexOf()

  • 功能:返回一个子字符串在原始字符串中的索引值(查找顺序从左往右查找)。如果没有找到,则返回-1。

  • 语法:strObj.indexOf(substr)

  • 参数:substr代表要查找的一个子字符串

lastIndexOf()

  • 功能:在原始字符串,从右往左查找某个子字符串。如果没找到,返回-1。

  • 语法:strObj.lastIndexOf(substr)

  • 参数:substr代表要查找的子字符串

substr()

  • 功能:在原始字符串,返回一个子字符串。

  • 语法:strObj.substr(startIndex [ , length])

  • 说明:从下标startIndex起,返回length个字符。

  • 参数:

  •  startIndex表示查找的起始索引号;

  •  length可选,返回几个字符。如果省略,一直返回到结尾

substring()

  • 功能:在原始字符串,返回一个子字符串。

  • 语法:strObj.substring(startIndex [ , endIndex])

  • 说明:返回从startIndex开始索引值到endIndex结束索引值之间的所有字符。

  • 参数:

  • startIndex:代表开始索引值。

  • endIndex:可选项,代表结束索引值。如果省略,一般返回到结尾的所有的字符。

        注:如果省略第二个参数,那么substr()和substring()结果一样。

        注:substring()返回的字符包含startIndex处的字符,不包含endIndex处的字符

split():将一个字符串转成数组

  • 功能:将一个字符串切割成若干段。返回一个数组。

  • 语法:strObj.split(分割号)

  • 参数:参数是一个分割号的字符串。用指定的分割号将字符串切成若干段。

        以空格为分割号,就字符串Hello JavaScript
        分割成数组Hello,JavaScript    

Array

一个数组变量,就是一个数组对象

length属性:动态获取数组长度。如:var len = arrObj.length

其他方法还有:

join()

  • 功能:将一个数组转成字符串。返回一个字符串。

  • 语法:arrObj.join(连接号)

  • 说明:将一个数组,用指定的“连接号”连接成一个字符串

reverse()

  • 功能:将数组中各元素颠倒顺序。

  • 语法:arrObj.reverse()

  • 参数:无

数组元素的删除和添加

  • delete运算符,只能删除数组元素的值,而所占空间还在,总长度没变(arr.length)。以前数组元素的添加,只能向后添加,不能向前添加

  • shift():删除数组中第一个元素,返回删除的那个值,并将长度减1。

  • pop():删除数组中最后一个元素,返回删除的那个值,并将长度减1。

  • unshift():往数组前面添加一个或多个数组元素,长度要改变。arrObj.unshift(“a” , “b” , “c”)

  • push():往数组结尾添加一个或多个数组元素,长度要改变。arrObj.push(“a” , “b” , “c”)

Date

Date对象的使用,必须使用new关键字来创建,否则,无法调用Date对象的属性和方法

创建的方法

(1)创建当前(现在)日期对象的实例,不带任何参数

var today = new Date();

(2)创建指定时间戳的日期对象实例,参数是时间戳。

时间戳:是指某一个时间距离1970年1月1日0时0分0秒,过去了多少毫秒值(1秒=1000毫秒)。

var timer = new Date(10000);  //时间是 1970年1月1日0时0分10秒

(3)指定一个字符串的日期时间信息,参数是一个日期时间字符串

var timer = new Date(“2016/11/11 10:00:00”);

举例:计算一下你今天多大了?

(4)指定多个数值参数

var timer = new Date(2015+100,4,25,10,20,0);  //顺序为:年、月、日、时、分、秒,年、月、日是必须的。

举例:计算自己再活多少天,能活到100岁。

方法

  • getFullYear():获取四位的年份。

  • getMonth():获取月份,取值0-11。

  • getDate():获取几号,取值1-31

  • getHours():获取小时数。

  •  getMinutes():分钟数

  • getSeconds():秒数

  • getMilliseconds()毫秒

  • getDay()星期

  • getTime()毫秒值,距离1970年1月1日至今的毫秒值

Math

Math对象是一个静态对象,换句话说:在使用Math对象,不需要创建实例

  • Math.PI:圆周率。

  • Math.abs():绝对值。如:Math.abs(-9) = 9

  • Math.ceil():向上取整(整数加1,小数去掉)。如:Math.ceil(10.2) = 11

  • Math.floor():向下取整(直接去掉小数)。如:Math.floor(9.888) = 9

  • Math.round():四舍五入。如:Math.round(4.5) = 5;    Math.round(4.1) = 4

  • Math.pow(x,y):求x的y次方。如:Math.pow(2,3) = 8

  • Math.sqrt():求平方根。如:Math.sqrt(121) = 11

  • Math.random():返回一个0到1之间的随机小数。如:Math.random() = 0.12204467732259783

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>php.cn</title>

    </head>
    <body>
    </body>
</html>
<script>
    var min = 100000;
    var max = 999999;
    var random = Math.random() *(max-min)+min; 
     //向下取整
    random = Math.floor(random);
    document.body.bgColor = "#"+random;
</script>

Number

一个数值变量就是一个数值对象

toFixed()

  • 功能:将一个数值转成字符串,并进行四舍五入,保留指定位数的小数。

  • 语法:numObj.toFixed(n)

  • 参数:n就是要保留的小数位数。

  • 举例:

var a = 123.9878;

a = a.toFixed(2);   // a = “123.99”

BOM对象模型

简介

  • BOM是browser object model的缩写,简称浏览器对象模型

  • BOM提供了独立于内容而与浏览器窗口进行交互的对象

  • 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window

  • BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性

6.png

 

Window对象属性与方法

属性

  • name:指浏览器窗口的名字或框架的名字。这个名字是给a标记的target属性来用的。        

        设置窗口的名字:window.name = “newWin”

        获取窗口的名字:document.write(name);

  • top:代表最顶层窗口。如:window.top

  • parent:代表父级窗口,主要用于框架。

  • self:代表当前窗口,主要用于框架中。

  • innerWidth:指浏览器窗口的内宽(不含菜单栏、工具栏、地址栏、状态栏),该属性Firefox支持。

  • 在IE下,使用 document.documentElement.clientWidth 来代替 window.innerWidth

  • innerHeight:指浏览器窗品的内高(不含菜单栏、工具栏、地址栏、状态栏),该属性Firefox支持。

  • 在IE下,使用  document.documentElement.clientHeight 来代替  window.innerHeight

  • document.documentElement   就是<html>标记对象

  • document.body  就是 <body>标记对象

方法

  • alert():弹出一个警告对话框。

  • prompt():弹出一个输入对话框。

  • confirm():弹出一个确认对话框。如果单击“确定按钮”返回true,如果单击“取消”返回false。

  • close():关闭窗口

  • print():打印窗口

open()方法

  • 功能:打开一个新的浏览器窗口。

  • 语法:var winObj = window.open([url][,name][,options]);

  • 说明:参数可有可无。如果没有指定参数,则打开一个选项卡式的窗口(大小是最大大化)。

  • 参数:

    • url:准备在新窗口中显示哪个文件。url可以为空字符串,表示显示一个空的页面。

    • name:新窗口的名字,该名字给标记的target属性来用

    • options:窗口的规格。

                                    width:新窗口的宽度

                                    height:新窗口的高度

                                    left:新窗口距离屏幕左边的距离

                                    top:新窗口距离屏幕上边的距离

                                    menubar:是否显示菜单栏,取值:yes、no

                                    toolbar:是否显示工具栏。

                                    location:是否显示地址栏。

                                    status:是否显示状态栏。

                                    scrollbars:是否显示滚动条,不能省略s字母。

                4.返回值:返回一个window对象的变量,可以通过该名称跟踪该窗口。winObj具备window对象的所有属性和方法。

        注:

        onload事件:当网页加载完成,指标记的所有内容全部加载完成,才触发该事件(条件)。通过onload事件属性,去调用JS的函数。onload属性只有body标记才有。

延时器方法

setTimeout()

  • 功能:设置一个延时器,换句话说:时间一到,就执行JS代码一次。

  • 语法:var timer = window.setTimeout(code,millisec)

  • 参数:

                code:是任何合法的JS代码,一般情况下是JS函数。该函数要放在引号中。

                        举例:window.setTimeout(“close()” , 2000)

                        举例:window.setTimeout(init, 2000);  //传函数地址,因此不需要加括号。如果加括号,是将函数的执行结果传到方法中。

                 millisec:毫秒值。1秒=1000毫秒

  • 返回值:返回一个延时器的id变量,这个id变量给clearTimeout()用来清除。

clearTimeout()

  • 功能:清除延时器id变量

  • 语法:window.clearTimeout(timer)

  • 参数:timer就是由setTimeout()设置的延时器的id变量

定时器方法

setInterval()

  • 功能:设置一个定时器。定时器,重复不断的执行JS代码(周期性)。

  •  语法: var timer = window.setInterval(code , millisec)

  • 参数:

                code:是任何合法的JS代码,一般情况下是JS函数。该函数要放在引号中。

                        举例:window.setInterval(“init()” , 2000)

                        举例:window.setInterval(init, 2000);  //传函数地址,因此不需要加括号。如果加括号,是将函数的执行结果传到方法中。

                millisec:毫秒值。1秒=1000毫秒

  • 返回值:返回一个定时器的id变量,这个id变量给clearInterval()用来清除。

clearInterval()

  • 功能:清除定时器id变量

  • 语法:window.clearInterval(timer)

  • 参数:timer就是由setInterval()设置的定时器的id变量

screen屏幕对象

  • Width:屏幕的宽度,只读属性。

  • Height:屏幕的高度,只读属性。

  • availWidth:屏幕的有效宽度,不含任务栏。只读属性。

  • availHeight:屏幕的有效高度,不含任务栏。只读属性。

  • appName:浏览器软件名称,主要用来判断客户使用的是什么核心的浏览器。

            如果是IE浏览器的话,返回值为:Microsoft Internet Explorer

            如果是Firefox浏览器的话,返回值为:Netscape

  • appVersion:浏览器软件的核心版本号。

  • systemLanguage:系统语言

  • userLanguage:用户语言

  • platform:平台

Location地址栏对象

  • href:获取地址栏中完整的地址。可以实现JS的网页跳转。location.href = “http://www.sina.com.cn”;

  • hostname:主机名

history对象

  • length:历史记录的个数

  • go(n):同时可以实现“前进”和“后退。”

  • history.go(0)  刷新网页

  • history.go(-1)  后退

  •  history.go(1)   前进一步

  • history.go(3)   前进三步

  • forward():相当于浏览器的“前进”按钮

  • back():相当于浏览器的“后退”按钮

DOM对象模型

DOM的分类

  • 核心DOM:提供了同时操作HTML文档和XML文档的公共的属性和方法。

  • HTML DOM:针对HTML文档提供的专用的属性方法。

  • XML DOM:针对XML文档提供的专用的属性和方法。

  • CSS DOM:提供了操作CSS的属性和方法。

  • Event DOM:事件对象模型。如:onclick、 onload等

HTML节点树

1000.png

 

DOM中节点类型

  • document文档节点,代表整个网页,不代表任何HTML标记。但它是html节点的父节点。

  • element元素节点,指任何HTML标记。每一个HTML标记就称一个“元素节点”。它可以有文本节点和属性节点。

  • attribute属性节点。指HTML标记的属性。

  • text节点。是节点树的最底节点。

核心DOM中的公共的属性和方法

节点访问

  • nodeName:节点名称。

  • nodeValue:节点的值。只有文本节点才有值,元素节点没有值。nodeValue的值只能是“纯文本”,不能含有任何的HTML标记或CSS属性。

  • firstChild:第1个子节点。

  • lastChild:最后1个子节点。

  • childNodes:子节点列表,是一个数组。

  • parentNode:父节点。

查找标记的方法

  • document.firstChild

  • document.firstChild.lastChild

  • document.body

对节点的属性操作

  • setAttribute(name,value):给某个节点添加一个属性。

  • getAttribute(name):获取某个节点属性的值。

  • removeAttribute(name):删除某个节点的属性

节点的创建

  • document.createElement(tagName):创建一个指定的HTML标记,一个节点

  • tagName:是指不带尖括号的HTML标记名称。

  • 举例:var imgObj = document.createElement(“img”)

  • parentNode.appendChild(childNode):将创建的节点,追加到某个父节点下。

  • parentNode代表父节点,父节点必须存在。

  • childNode代表子节点。

  • 举例:document.body.appendChild(imgObj)

  • parentNode.removeChild(childNode):删除某个父节点下的子节点。

  • parentNode代表父节点。

  • childNode代表要删除的子节点。

HTMLDOM

getElementById()

  • 功能:查找网页中指定id的元素对象。

  • 语法:var obj = document.getElementById(id)

  • 参数:id是指网页中标记的id属性的值。

  • 返回值:返回一个元素对象。

  • 举例:var imgObj = document.getElementById(“img01”)

getElementsByTagName(tagName)

  • 功能:查找指定的HTML标记,返回一个数组。

  • 语法:var arrObj = parentNode.getElementsByTagName(tagName)

  • 参数:tagName是要查找的标记名称,不带尖括号。

  • 返回值:返回一个数组。如果只有一个节点,也返回一个数组。

  • 举例:var arrObj = ulObj.getElementsByTagName(“li”)

<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>php.cn</title>
 <script type="text/javascript">
 window.onload = function(){
 //获取id=ulTag的网页对象
 var ulObj = document.getElementById("question");
 //查找<ul>下的所有的<li>标记
 var arrObj = ulObj.getElementsByTagName("li");
 //给所有的<li>标记增加CSS效果
 for(var i=0;i<arrObj.length;i++)
 {
 //给每个<li>标记加style属性
 arrObj[i].style = "color:blue;font-size:24px;";
 }
 }
 </script>
 </head>
 <body >
 <ul id="question">
 <li>mac 中系统自带的apache 误删了怎么恢复</li>
 <li>CURL POST数据量过大,接收不到服务端的信息</li>
 <li>用了构造函数为什么这个还是2?</li>
 <li>cookies登录原理</li>
 </ul>
</html>

CSS DOM动态样式

DOM中Event对象

Form对象

一个<form>标记,就是一个<form>对象。

form对象的属性

  • name:表单的名称,主要用来让JS来控制表单。

  • action:表单的数据处理程序(PHP文件)。

  • method:表单的提交方式,取值:GET、POST

  • enctype:表单数据的编码方式。

form对象的方法

  • submit():提交表单,与<input  type = “submit” />功能一样。

  • reset():重置表单,与重置按钮功能一样。

form对象的事件

  • onsubmit:当单击提交按钮时发生,并数据发往服务器之前发生。主要用来“在表单提交之前进行表单验证”。

  • onreset:当单击重置按钮时发生。

获取表单元素

  • 通过网页元素的id来获取对象。document.getElementById(id)

  • 通过HTML标签名来获取对象。parentNode.getElementsByTagName(tagName)

  • 通过name属性来获取表单元素对象。表单中所有元素的起点都必须是document对象。

  • 语法:document.formObj.elementObj

  • 访问方式是三层结构。其中,formObj代表表单对象,elementObj代表表单元素对象。

  • 举例:document.form1.username.value.length

事件返回值

事件的返回值,会影响对象的默认动作。如:<a>标记的默认动作是打开一个网址。

如果事件返回false,则阻止默认动作的执行;如果事件返回true或空,则默认动作继续执行

提交和验证方法总结

常用:使用submit按钮,结合onsubmit事件来实现

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php.cn</title>
<script type="text/javascript">
function checkForm()
{
    //判断用户名是否为空
    if(document.form1.username.value=="")
    {
        window.alert("用户名不能为空!");
        return false;
    }else
    {
        window.alert("验证通过!");
        return true;
    }
}
</script>
</head>
<body>
<form name="form1" method="post" action="login.php" onsubmit="return checkForm()">
用户名:<input type="text" name="username" />
密码:<input type="password" name="userpwd" />
<input type="submit" value="提交表单" />
</form>
</body>
</html>

submit按钮,结合onclick事件,实现表单的验证和提交

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php.cn</title>
<script type="text/javascript">
function checkForm()
{
    //判断用户名是否为空
    if(document.form1.username.value=="")
    {
        window.alert("用户名不能为空!");
    }else
    {
        window.alert("验证通过!");
    }
}
</script>
</head>
<body>
<form name="form1" method="post" action="login.php">
用户名:<input type="text" name="username" />
密码:<input type="password" name="userpwd" />
<input type="submit" value="提交表单" onclick="checkForm()" />
</form>
</body>
</html>

button按钮(普通按钮),结合submit()方法,实现表单验证提交

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php.cn</title>
<script type="text/javascript">
function checkForm()
{
    if(document.form1.username.value.length == 0)
    {
        //如果用户名为空
        window.alert("用户名不能为空!");
    }else if(document.form1.username.value.length<5 || document.form1.username.value.length>20)
    {
        //如果用户名长度小于5或大于20
        window.alert("用户名只能介于5-20个字符!");
    }else if(checkOtherChar(document.form1.username.value))
    {
        //如果用户名含有特殊符号
        window.alert("用户名中含有特殊符号!");
    }else
    {
        //如果验证通过,提交表单
        window.alert("验证通过!");
        //表单提交方法
        document.form1.submit();
    }
}
function checkOtherChar(str)
{
    //定义一个特殊符号的数组
    var arr = ["*","&","<",">","$","\\","/"];
    //循环比较:数组中的每一个字符,与用户名每一个字符进行比对
    for(var i=0;i<arr.length;i++)
    {
        for(var j=0;j<str.length;j++)
        {
            if(arr[i]==str.charAt(j))
            {
                return true;
            }
        }
    }
    //如果没找到
    return false;
}
</script>
</head>
<body>
<form name="form1" method="post" action="login.php">
用户名:<input type="text" name="username" />
密码:<input type="password" name="userpwd" />
<input type="button" value="提交按钮" onclick="checkForm()" />
</form>
</body>
</html>

input对象

一个<input>标记,就是一个input对象。

input对象的属性(以type=text为例)

  • name:表单元素的名称。

  • value:表单元素的值,用户输入的内容,可以通过该属性来获取。

  • size:表单的长度。

  • maxlength:表单元素的最大长度(最多可输的字符数)。

  • disabled:禁用属性。

  • readonly:只读属性。

input对象的方法

  • focus():获得焦点的方法(定位光标)。

  • blur():失去焦点的方法(移走光标)。

  • select():选中文本的方法。

input对象的事件

  • onfocus:当获得焦点时

  • onblur:当失去焦点时

select对象

一个<select>标记,对应一个select对象。

select对象属性

  • options[]:设置或返回下拉列表中<option>标记构成的数组。

  • selectedIndex:设置或选中指定<option>的索引号。

  • length:指定下拉列表中<option>标记的个数。

  • name:元素名称。

option对象

一个<option>标记,对应一个option对象。

option对象属性

  • text:指<option>和</option>之间的文本。

  • value:是指<option>标记的属性

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8" />
    <title>php.cn</title>
    <script>
        window.onload=function(){
            var Form = document.form;
            Form.city.options[2].text = "合肥";
            alert(Form.city.options[2].text);
        }
    </script>
</head>
<body>
    <form name="form" method="post" action="">
        城市:
        <select name="city">
            <option value="0">北京</option>
            <option value="1">上海</option>
            <option value="2">深圳</option>
        </select>
    </form>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值