JavaScript入门

第1章 DOM

1.1.1 什么是DOM

 DOM:Document Object Model 文档对象模型,定义访问和操作结构化文档(HTML)的方式。
 创建的结构化文档:html、xml 等
 DOM包括:核心DOM、HTML DOM、XML DOM。通常情况下HTML DOM 和XML DOM是可以相互使用的。
 HTML DOM 将 整个HTML文档呈现成一颗DOM树,树中有元素、属性、文本等成员。

在这里插入图片描述

1.1.2 document文档对象

 浏览器加载整个HTML文档形成Document 对象,Document 对象可以访问和操作HTML文档中的所有元素。
标签元素的操作
1)获得元素对象:
根据id获得一个元素:getElementById(id属性值)
根据标签名称获得多个元素:getElementsByTagName(标签名称)
根据class属性获得多个元素:getElementsByClassName(class的属性值)
根据name属性获得多个元素:getElementsByName(name属性值)
2)创建一个新元素createElement()
3)将元素放到某个父元素的内部appendChild()
4)标签体的获取与设置:innerHTML
属性的操作
获得属性的值:getAtrribute(name)
设置属性的值:setAtrribute(name,value)
删除某个属性:removeAtrribute(name)

第2章 JavaScript内置对象

2.1 String对象
JS的对象也分为内置对象和定义对象,Java中Object,String,System属于内置对象,自定义的Person,Student属于自定义的对象.
JS的自定义对象是函数实现的

<script type="text/javascript">
		/*
		    String对象
		*/
		var str = "abc"// typeof 输出string
		var str2 = new String(str); //typeof 输出 object
		//以上定义方式,都可以使用String对象的方法
		
		var s = "a-b-c-de-FG";
		//字符串的长度
		//alert(s.length);
		
		//指定索引找字符
		//alert(s.charAt(1));
		
		//字符第一次出现的索引
		//alert(s.indexOf("c"));
		
		//字符最后一次出现的索引
		//alert(s.lastIndexOf("c"));
		
		//切割字符串
		/*var strArr = s.split("-");
		for(var i = 0 ; i < strArr.length;i++){
			alert(strArr[i]);
		}*/
		
		//获取索引之间的字符
		//alert(s.substring(1,3));
		
		//获取索引开始到长度的字符
		//alert(s.substr(1,3));
		
	</script>

2.2 Date对象
JS中的日期对象

	<script type="text/javascript">
			/*
			 * Data对象
			 * 创建方式直接new
			 */
			var date = new Date();
			//拼接年月日
			alert(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日");
			//获取毫秒值
			alert(date.getTime());
		</script>

2.3 Math对象
Math是数学计算的对象,此对象无需创建,直接Math.调用

<script type="text/javascript">
			/*
			  Math对象
			     直接调用
			*/
			//向上取整
			alert(Math.ceil(3.14));
			//向下取整
			alert(Math.floor(3.14));
			//四舍五入取整
			alert(Math.round(3.14));
		</script>

2.4 Array数组对象

	<script type="text/javascript">
		/*
		       数组对象定义方式 
		  new Array();
		  new Array(size);
	       new Array(element0, element0, ..., elementn);
		*/
		//定义数组对象
		var arr1 = new Array();
		//赋值元素
		arr1[0] = 1;
		arr1[1] = "a";
		arr1[2] = 2.2;
		alert(arr1);
		
		//定义数组对象
		var arr2 = new Array(3);
		//打印数组长度
		alert(arr2.length);
		
		//定义数组对象
		var arr3 = new Array(3,4,5,"a",true);
		alert(arr3);
		
		//开发中最常用方式
		var arr4 = [1,2,3,4,"a","b","c"];
		for(var i = 0 ; i< arr4.length;i++){
			alert(arr4[i]);
		}
		
		//定义二位数组
		var arr5 = [
		   [1,2,3],["a",4,"b"],[true,5,false]
		];
		//打印3
		alert(arr5[0][2]);
		//打印a
		alert(arr5[1][0]);
		//打印false
		alert(arr5[2][2]);
	</script>

2.5 RegExp正则表达式对象
JS中的正则表达式和Java中的正则表达式相似
定义方式: 直接定义和创建对象方式

			<script type="text/javascript">
			/*
			 * JS内置对象RegExp,正则表达式对象
			 * 正则表达式意义: 对复杂字符串进行处理的技术
			 * 正则表达式的本质:是一种规则,字符串和规则进行匹配,成功true
			 * 写正则表达式的规则 
			 *   规则写法:
			 *     [a-z]          这个字符必须是小写字母
			 *     [abc]          字符必须是abc
			 *     [0-9]          这个字符必须是数字
			 *     [a-zA-Z0-9]    这个字符必须是字母或者是数字
			 *     [^a-z]         这个字符不是小写字母 ^  
			 *     [\d]           等同于[0-9]
			 *     [\w]           等同于[a-zA-Z0-9_]
			 *     [\D]           等同于[^0-9]
			 *     [\W]           等同于[^a-zA-Z0-9_]
			 *     X*             X这个字符可以出现零次或者多次
			 *     X?             X这个字符可以出现零次或者一次
			 *     X+             X这个字符可以出现一次或者多次
			 *     X{m}           X这个字符出现次数正好m次
			 *     X{m,}          X这个字符出现次数至少m次
			 *     X{m,n}         X这个字符出现次数至少m次,最多n次
			 */
			//要求: 手机号,验证格式 13800138000
			// 1开头  第二位 3567894  第三位必须数字-11
			//JS中,定义正则表达式规则  定义在 /规则/ 内部
			var telReg = /^1[3567894][0-9]{9}$/;
			//正则表达式对象方法 test(字符串)
			var bool = telReg.test("13800138000");
			//alert(bool);
			
			//需求: 用户名字母,数字,6-8
			var userReg = /^[a-zA-Z0-9]{6,8}$/;
			alert(userReg.test("tomtom"))
			
			//String reg = "[0-9]";  "abc".matches(reg);
		</script>

第3章 隔行换色

<script type="text/javascript">
				/*
				 * 实现思想:
				 *   表格行,分出奇偶数
				 *   奇数行,设置背景色
				 *   偶数行,设置背景色
				 *   tagName("tr")返回数组,数组有索引的
				 *   设置背景色
				 */
				var trs=document.getElementsByTagName("tr");
				for (var i = 2; i < trs.length; i++) {
					if (i%2==0) {
						trs[i].bgColor="AAAAAA";
					}else{
						trs[i].bgColor="ABF123";
					}
				}
				//定义变量,保存变化后的颜色
					var color="";
					for (var i = 2; i < trs.length; i++) {
						trs[i].onmouseover=function(){
							color=this.bgColor;
							this.bgColor="FA0000";
						}
						
						trs[i].onmouseout=function(){
							this.bgColor=color;
						}
					}
					
				
		</script>

第4章 全选和全不选


		<script type="text/javascript">
			/*
			 *  定义名字:
			 *    上面复选框,总选框
			 *    下面复选框,分选框
			 * 
			 *  <input type="checkbox"  > 属性 checked="checked"
			 * 所有的分选框的属性 checked属性值,跟随总选框checked属性值
			 */
			function selectAll(){
				var zong=document.getElementById("zong");
				var checkboxs =document.getElementsByClassName("itemSelect");
					for (var i = 0; i < checkboxs.length; i++) {
						checkboxs[i].checked=zong.checked;
					}
			}
		</script>

第5章 省市联动

<script type="text/javascript">
			// 定义二维数组:存储省市信息
				var pros = [
				  ["朝阳","海淀","昌平"],["长春市","锦州市","吉林市"],["南京市","苏州市","徐州市"]
				];
			function selectCity(province){
				//获取选中省份的市数组
				var cityArr = pros[province];
				//获取城市的select标签对象
				var cityEle = document.getElementById("cityId");
				
				//添加之前先清空option子标签
				cityEle.innerHTML="";
				//创建请选择的option子标签
				var optionEle = document.createElement("option");
				optionEle.innerHTML="----请-选-择-市----";
				cityEle.appendChild(optionEle);
				//遍历数组,几个元素就创建几个子option标签
				for(var i = 0;i < cityArr.length;i++){
					//创建子标签
					var optionEle = document.createElement("option");
					//设置子标签的标签体内容
					optionEle.innerHTML=cityArr[i];
					//添加子标签
					cityEle.appendChild(optionEle);
				}	
			}	
		</script>

第6章 表单注册

		<script type="text/javascript">
			function checkForm(){
				
				//获取填写用户名,数字,字母,下划线,长度6-10
				var username =document.getElementById("loginnameId").value;
				//定义用户名的规则
				var userReg = /^[a-zA-Z0-9_]{6,10}$/;
				if(userReg.test(username)){
					//验证通过
					//return true;
				}else{
					//验证失败
					var userMsg=document.getElementById("userMsg");
					userMsg.innerHTML="用户名必须是数字字母下划线,长度6-10";
					userMsg.style.color="red";
					return false;
				}
				//获取填写邮件地址
				var email = document.getElementById("emailId").value;
				//定义邮件的正则规则: shisong@163.com  123213123@qq.com.cn  shisong@itcast.cn 
				/*@前面:字母数组下划线
				 *@后面:小写字母,数组
				 */
				var emailReg=/^[a-zA-Z0-9_]+@[a-z0-9]+(\.[a-z]+)+$/;
				if(emailReg.test(email)){
					//验证通过
					return true;
				}else{
					//验证失败
					var emailMsg = document.getElementById("emailMsg");
					emailMsg.innerHTML="邮箱格式不正确";
					emailMsg.style.color="red";
					return false;
				}
				
			}
		</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值