JavaScript
教程网站
JavaScript语言诞生主要是完成页面数据验证。因此它运行在客户端,需要浏览器来解析JavaScript代码。
Js是弱类型(变量类型可变),Java是强类型(定义变量时类型已确定)
特点:
交互性(页面信息的动态交互)
安全性(不允许直接访问本地硬盘)
跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关)
JS和html代码的结合方式
第一种
在head 标签中,或者在body 标签中,使用<script></script>
标签来书写JS代码
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS02</title > <script type ="text/javascript" > alert("Hello,JS!" ) </script > </head > <body > </body > </html >
alert 是JS语言提供的一个警告框 函数。它可以接受任意类型的参数,这个参数就是警告框的提示信息。
效果为:
第二种
使用script标签引入单独的JS代码文件。
首先创建JS代码文件JS01.js,代码如下:
1 alert("这是JS01文件的内容:Hello" )
然后在html文件中写入代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS02</title > <script type ="text/javascript" src ="JS01.js" > </script > </head > <body > </body > </html >
其中script标签的src属性 ,专门用来引入js代码,也可以用来引入js文件(可以是相对路径,也可以是绝对路径)
script标签可以用来定义js代码(第一种方法),也可以用来引入js文件(第二种方法)。但是这两个功能不能同时使用 ,只能二选一。
JS语法
变量
JS的变量类型
number 数值类型
string 字符串类型
object 对象类型
boolean 布尔类型
function 函数类型
JS中的特殊的值:
undefined 未定义,所有js变量为赋初值的时候,默认都是undefined
null 空值
NaN 全称Not a Number 非数字,非数值
JS中的变量格式:
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS03</title > <script type ="text/javascript" > var i; alert(i) i = 12; alert(typeof (i)); i = 'abc' ; alert(typeof (i)); var a = 12 var b = 'abc' alert(a*b) </script > </head > <body > </body > </html >
关系(比较)运算
==
等于,简单的字面值进行比较
===
全等于,除了做字面值比较之外,还会比较两个变量的数据类型
至于>
,<
,>=
,<=
,!=
,则和Java一样。
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS03</title > <script type ="text/javascript" > var a = "12" var b = 12 alert(a == b) alert(a === b) </script > </head > <body > </body > </html >
逻辑运算
在JS中,所有的变量都可以作为一个boolean类型的变量去使用。
0
,null
,undefined
,"",
(空字符串),都认为是false
&& 且运算
当表达式全为真时,返回最后一个表达式的值
当表达式中有假时,返回第一个表达式为假的值
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS03</title > <script type ="text/javascript" > var a = 0 var b = 1 var c = null var d = '123' alert(d&&b) alert(b&&d) alert(c&&b&&a) </script > </head > <body > </body > </html >
|| 或运算
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS03</title > <script type ="text/javascript" > var a = 0 var b = 1 var c = null var d = '123' alert(a||b||c||d) alert(a||c) </script > </head > <body > </body > </html >
数组
JS中数组定义格式为:
1 2 var 数组名 = [] var 数组名= [1 ,'abc' ,true ]
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS03</title > <script type ="text/javascript" > var arr = [] alert('数组长度为:' +arr.length) arr[0] = 11 alert('数组长度为:' +arr.length) alert(arr[0 ]) alert(arr[1 ]) arr[1 ] = 'hello' arr[2 ] = 'world' for (var i = 0 ;i < arr.length; i++){ alert(arr[i]) } </script > </head > <body > </body > </html >
函数
函数的定义
JS中,函数有两种定义方式
使用function关键字定义函数
格式:
1 2 3 function 函数名(形参列表 ) { 函数体 }
在JS中如果要定义带有返回值的函数,直接在函数体中return即可。(类似python)
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function fun1 () { alert("调用无参函数fun1" ) } function fun2 (a,b) { alert("调用有参函数fun2,其中a为:" +a+"b为:" +b) } function sum (a,b) { var n = a+b return n } fun1() fun2(12 ,'hello' ) alert('12+13结果为:' +sum(12 ,13 )) </script > </head > <body > </body > </html >
第二种定义方式
格式:
1 2 3 var 函数名 = function (形参列表 ) { 函数体 }
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var fun1 = function () { alert('调用无参函数fun1' ) } fun1() </script > </head > <body > </body > </html >
注意:在Java中函数允许重载,但在JS中函数重载会直接覆盖掉上一次的定义 。
函数的arguments隐形参数
函数的arguments隐形参数,就是在function中不需要定义,但却可以直接用来获取所有参数的变量,称之为隐形参数。(有点类似于python中的*args,或者说JavaSE中的可变参数)
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function fun (a) { alert('参数个数为:' +arguments .length) alert(arguments [0 ]) alert(arguments [1 ]) } fun(11 ,12 ) </script > </head > <body > </body > </html >
编写一个函数,用于计算所有参数相加并返回结果。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function sum (a) { var result = 0 for (var i=0 ;i<arguments .length;i++){ if (typeof (arguments [i]=='number' )){ result = result + arguments [i] } } return result } alert('12+13+14+15=' +sum(12 ,13 ,14 ,15 )) alert('12+13+14=' +sum(12 ,13 ,14 )) alert('12+13+14+15+22=' +sum(12 ,13 ,14 ,15 ,22 )) </script > </head > <body > </body > </html >
自定义对象
Object
形式的自定义对象
格式:
1 2 3 4 5 6 7 var 变量名 = new Object 变量名.属性名 = 值 变量名.函数名 = function ( ) {} 变量名.属性 变量名.函数名()
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS05</title > <script type ="text/javascript" > var obj = Object () alert(typeof (obj)) obj.name = "jay" obj.age = 38 obj.toString = function () { alert("姓名:" +this .name+",年龄:" +this .age) } alert(obj.name) obj.toString() </script > </head > <body > </body > </html >
{}
形式的自定义对象
格式:
1 2 3 4 5 6 7 8 9 var 变量名 = { 属性名: 值, 属性名: 值, 函数名: function ( ) {} } 变量名.属性 变量名.函数名()
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS05</title > <script type ="text/javascript" > var obj = { name: 'jj' , age: 28, toString: function () { alert("姓名:" +this .name+",年龄:" +this .age)} } alert(obj.name) obj.toString() </script > </head > <body > </body > </html >
JS中的事件
教程网站
事件是电脑输入设备与页面进行交互的响应。
HTML 事件是发生在 HTML 元素上的“事情”。当在 HTML 页面中使用 JavaScript 时,JavaScript 能够“应对”这些事件。
常用事件:
onload 加载完成事件 页面加载之后,常用于页面js代码初始化操作
onclick 单击事件 常用于按钮的点击响应操作
onblur 失去焦点事件 常用于输入框失去焦点后验证其输入内容是否合法
onchange 内容发生改变事件 常用于下拉列表和输入框内容发生改变后的操作
onsubmit 表单提交事件 常用于表单提交前,验证所有表单项是否合法
事件的注册(绑定),就是告诉浏览器,当事件响应后要执行哪些操作代码。
事件的注册分为两种:
静态注册事件:通过html标签的事件属性直接给出事件响应后的代码
动态注册事件:先通过js代码得到标签的dom对象,然后再通过dom对象.事件名 = function(){}
这种形式给出事件响应后的代码
onload 加载完成事件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS06</title > <script type ="text/javascript" > function onloadFun () { alert('静态注册onload事件的js代码' ) } onloadFun() window .onload = function ( ) { alert('动态注册onload事件' ) } </script > </head > <body > </body > </html >
onclick 单击事件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS06</title > <script type ="text/javascript" > function onclickFun () { alert('静态注册onclick事件' ) } window .onload = function ( ) { var element = document .getElementById('btn01' ); element.onclick = function () { alert('动态注册onclick事件' ) } } </script > </head > <body > <button onclick ="onclickFun()" > 按钮1</button > <button id ="btn01" > 按钮2</button > </body > </html >
其中document是JS语言提供的一个对象(文档),其中的getElementById方法是通过id获取标签对象。关于document 后续会讲到。
onblur 失去焦点事件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS07</title > <script type ="text/javascript" > function onblurFun () { console .log('静态注册onblur事件' ) } window .onload = function ( ) { var element = document .getElementById('pawd' ); element.onblur = function () { console .log('动态注册onblur事件' ) } } </script > </head > <body > 用户名:<input type ="text" onblur ="onblurFun()" > <br /> 密码: <input id ="pawd" type ="password" > </body > </html >
onchange 内容发生改变事件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS08</title > <script type ="text/javascript" > function onchangeFun () { alert('英雄选择成功!' ) } window .onload = function ( ) { var element = document .getElementById('select01' ); element.onchange = function () { alert('爱好选择成功!' ) } } </script > </head > <body > 请选择你的英雄: <select onchange ="onchangeFun()" > <option > jj</option > <option > jay</option > <option > rick</option > <option > hello</option > </select > 请选择你的爱好: <select id ="select01" > <option > js</option > <option > java</option > <option > python</option > <option > c++</option > </select > </body > </html >
onsubmit 表单提交事件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > JS09</title > <script type ="text/javascript" > function onsubmitFun () { alert('静态注册提交' ) } window .onload = function ( ) { var element = document .getElementById('form01' ); element.onsubmit = function () { alert('动态注册表提交,发现不合法!' ) return false } } </script > </head > <body > <form action ="http://www.baidu.com" method ="get" onsubmit ="return onsubmitFun()" > <input type ="submit" value ="静态注册" > </form > <form action ="http://www.baidu.com" method ="get" id ="form01" > <input type ="submit" value ="动态注册" > </form > </body > </html >
DOM模型
文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来。
一个web页面是一个文档。这个文档可以在浏览器窗口或作为HTML源码显示出来。但上述两个情况中都是同一份文档。文档对象模型(DOM)提供了对同一份文档的另一种表现,存储和操作的方式。 DOM是web页面的完全的面向对象表述,它能够使用如 JavaScript等脚本语言进行修改。
DOM Document Object Model 文档对象模型
就是把文档中的标签、属性、文本转换成对象来管理
教程网站
Document对象
document对象的理解:
document管理了所有的html文档内容
document是一种树结构文档,有层级关系
document把所有的标签都对象化
可以通过document访问所有的标签对象
document对象中的方法
教程网站
document.getElementById(elementId) 通过标签id的属性查找标签dom对象,elementId是标签id属性值
document.getElementByName(elementName) 通过标签的name属性查找dom对象,elementName标签的name属性值
document.getElementByTagName(tagName) 通过标签名查找标签dom对象。tagname是标签名
document.createElement(tagName) 通过给定的标签名,创建一个标签对象。tagName是要创建的标签名
注意:document对象的三个查询方法,如果有id属性,优先使用getElementById方法来查询;如果没有id属性,优先使用getElementByName方法来查询;如果id属性和name属性都没有,则使用getElementByTagName方法来查询。
以上三个方法,一定要在页面加载完成之后执行,才能查询到标签对象。(注意下代码执行顺序即可)
getElementById
需求:当用户点击了校验按钮,要获取输出框中的内容,然后验证其是否合法。验证规则是:必须由字母、数字、下划线组成,且长度为5-12位。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > 01</title > <script type ="text/javascript" > function onclickFun () { var usernameobj = document .getElementById('username' ); var usernameText = usernameobj.value; var patt = /^\w{5,12}$/ if (patt.test(usernameText)){ alert('用户名合法!' ) }else { alert('用户名不合法!' ) } } </script > </head > <body > 用户名:<input type ="text" id ="username" value ="请输入用户名" > <button onclick ="onclickFun()" > 检验</button > </body > </html >
其中关于JS的正则表达式 在后面有说明,其他说明在注释里。
稍微改进一下,上述代码可以如下修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > 01</title > <script type ="text/javascript" > function onclickFun () { var usernameObj = document .getElementById('username' ); var usernameText = usernameObj.value; var patt = /^\w{5,12}$/ var spanObj = document .getElementById('usernamespan' ); if (patt.test(usernameText)){ spanObj.innerHTML = '用户名合法!' }else { spanObj.innerHTML = '用户名不合法!' } } </script > </head > <body > 用户名:<input type ="text" id ="username" value ="请输入用户名" > <br /> <button onclick ="onclickFun()" > 校验</button > <br /> <span style ="color: red" id ="usernamespan" > </span > </body > </html >
效果如下:
getElementByName
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > document02</title > <script type ="text/javascript" > function checkAll () { var hobbies = document .getElementsByName('hobby' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = true } } function checkNone () { var hobbies = document .getElementsByName('hobby' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = false } } function checkReverse () { var hobbies = document .getElementsByName('hobby' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = !hobbies[i].checked } } </script > </head > <body > 兴趣爱好: <input type ="checkbox" name ="hobby" value ="c++" > c++ <input type ="checkbox" name ="hobby" value ="java" > java <input type ="checkbox" name ="hobby" value ="python" > python <br /> <button onclick ="checkAll()" > 全选</button > <button onclick ="checkNone()" > 全不选</button > <button onclick ="checkReverse()" > 反选</button > </body > </html >
效果如下:
getElementByTagName
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > document03</title > <script type ="text/javascript" > function checkAll () { var hobbies = document .getElementsByTagName('input' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = true } } function checkNone () { var hobbies = document .getElementsByTagName('input' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = false } } function checkReverse () { var hobbies = document .getElementsByTagName('input' ); for (var i = 0 ;i<hobbies.length;i++){ hobbies[i].checked = !hobbies[i].checked } } </script > </head > <body > 兴趣爱好: <input type ="checkbox" value ="c++" > c++<input type ="checkbox" value ="java" > java<input type ="checkbox" value ="python" > python<br /> <button onclick ="checkAll()" > 全选</button > <button onclick ="checkNone()" > 全不选</button > <button onclick ="checkReverse()" > 反选</button > </body > </html >
效果 如上。
createElement
要使用js代码来创建html标签,并显示在页面上。简单例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > document04</title > <script type ="text/javascript" > window .onload = function ( ) { var divObj = document .createElement('div' ); divObj.innerHTML = 'hello,world!<br /> ' // 内存中,<div > hello,world!<br /> </div > document .body.appendChild(divObj) var textNode = document .createTextNode('文本节点对象' ); divObj.appendChild(textNode) // 添加子元素到body标签,直接为<div > 文本节点对象</div > } </script > </head > <body > </body > </html >
节点的常用属性和方法
教程网站
在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
整个文档是一个文档节点
每个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每个 HTML 属性是属性节点
注释是注释节点
HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树 :
通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。
常用方法:
document.getElementById(elementId) 通过标签id的属性查找标签dom对象,elementId是标签id属性值
document.getElementByName(elementName) 通过标签的name属性查找dom对象,elementName标签的name属性值
document.getElementByTagName(tagName) 通过标签名查找标签dom对象。tagname是标签名
document.createElement(tagName) 通过给定的标签名,创建一个标签对象。tagName是要创建的标签名
getElementByTagName() 通过具体的元素节点调用
appendChild(oChildNode)
常用属性:
childNodes 获取当前节点的所有子节点
firstChild 获取当前节点的第一个子节点
lastChild 获取当前节点的最后一个字节点
parentNode 获取当前节点的父节点
nextSibling 获取当前节点的下一个节点
previousSibling 获取当前节点的上一个节点
className 获取标签的class属性值(可读可写)
innerHTML 获取起始标签和结束标签中的内容(可读可写)
innerText 获取起始标签和结束标签中的文本(可读可写)
节点常用属性和方法更多说明见教程
DOM查询练习:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > 05</title > <link rel ="stylesheet" type ="text/css" href ="style/css.css" > <script type ="text/javascript" > window .onload = function ( ) { document .getElementById('btn01' ).onclick = function ( ) { var bjObj = document .getElementById("beiJing" ); alert(bjObj.innerHTML) } var btn02Obj = document .getElementById('btn02' ); btn02Obj.onclick = function () { var li_list = document .getElementsByTagName('li' ); alert(li_list.length) } var btn03Obj = document .getElementById('btn03' ); btn03Obj.onclick = function () { var gender_list = document .getElementsByName('gender' ); alert(gender_list.length) } var btn04Obj = document .getElementById('btn04' ); btn04Obj.onclick = function () { var city_li_list = document .getElementById('city' ).getElementsByTagName('li' ); alert(city_li_list.length) } var btn05Obj = document .getElementById('btn05' ); btn05Obj.onclick = function () { alert(document .getElementById('city' ).childNodes.length) } var btn06Obj = document .getElementById('btn06' ); btn06Obj.onclick = function () { alert(document .getElementById('phone' ).firstElementChild.innerHTML) } var btn07Obj = document .getElementById('btn07' ); btn07Obj.onclick = function () { alert(document .getElementById('beiJing' ).parentNode.innerHTML) } var btn08Obj = document .getElementById('btn08' ); btn08Obj.onclick = function () { alert(document .getElementById('android' ).previousSibling.innerHTML) } var btn09Obj = document .getElementById('btn09' ); btn09Obj.onclick = function () { alert(document .getElementById('username' ).value) } var btn10Obj = document .getElementById('btn10' ); btn10Obj.onclick =function () { document .getElementById('username' ).value = '' } var btn11Obj = document .getElementById('btn11' ); btn11Obj.onclick = function () { alert(document .getElementById('beiJing' ).innerText) } } </script > </head > <body > <div id ="total" > <div class ="inner" > <p > 请选择城市</p > <ul id ="city" > <li id ="beiJing" > 北京</li > <li > 深圳</li > <li > 杭州</li > <li > 上海</li > </ul > <br /> <br /> <p > 请选择游戏</p > <ul id ="game" > <li id ="war3" > 魔兽争霸</li > <li > 星际争霸</li > <li > 反恐精英</li > <li > 欢乐斗地主</li > </ul > <br /> <br /> <p > 请选择操作系统</p > <ul id ="phone" > <li > IOS</li > <li id ="android" > Android</li > <li > Windows Phone</li > </ul > </div > <br /> <br /> <div class ="inner" > 性别: <input type ="radio" name ="gender" value ="male" > 男 <input type ="radio" name ="gender" value ="famale" > 女 <br /> <br /> 姓名: <input type ="text" name ="name" id ="username" value ="请输入姓名" > </div > </div > <div id ="buttonList" > <div > <button id ="btn01" > 查找#beiJing节点</button > </div > <div > <button id ="btn02" > 查找所有的li节点</button > </div > <div > <button id ="btn03" > 查找name=gender的所有节点</button > </div > <div > <button id ="btn04" > 返回#city下所有li节点</button > </div > <div > <button id ="btn05" > 返回#city的所有子节点</button > </div > <div > <button id ="btn06" > 返回#phone的第一个子节点内容</button > </div > <div > <button id ="btn07" > 返回#beiJing的父节点内容</button > </div > <div > <button id ="btn08" > 返回#android的前一个兄弟节点内容</button > </div > <div > <button id ="btn09" > 返回#username的value属性值</button > </div > <div > <button id ="btn10" > 重置#username的value属性值</button > </div > <div > <button id ="btn11" > 返回#beiJing的文本值</button > </div > </div > </body > </html >
css文件内容就不写了,效果如下:
正则表达式
正则表达式是构成搜索模式(search pattern)的字符序列。当搜索文本中的数据时,可使用搜索模式来描述您搜索的内容。
正则表达式可以是单字符,或者更复杂的模式。正则表达式可用于执行所有类型的文本搜索和文本替换操作。
格式:
1 2 3 4 /pattern/modifiers; var patt = /hello/i ;
其中,/hello/i 是一个正则表达式。hello是模式(pattern)(在搜索中使用),i 是修饰符(把搜索修改为大小写不敏感)。
修饰符:
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 执行多行匹配。
日后需要用到的话有更详细的教程