JavaEE学习日志(四十四): JavaScript案例,JavaScript内置对象

JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇)

JS案例

表单隔行换色和鼠标悬停换色

在这里插入图片描述
表单隔行换色实现思想:表格行,分出奇偶数

  1. 奇数行,设置背景色
  2. 偶数行,设置另一背景色
  3. tagName(“tr”)返回数组,数组有索引
  4. 设置背景色

鼠标悬停换色实现思想:

  1. 为每个tr行,绑定鼠标的悬停事件,并记录之前的背景色
  2. 为每个tr行,绑定鼠标的移出事件,还原回原来的背景色

代码实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>表格隔行变色</title>
		
	</head>
	<body>
		<table id="tab1" border="1" width="800" align="center" >
			<tr>
				<td colspan="5"><input type="button" value="删除"></td>
			</tr>
			<tr style="background-color: #999999;">
				<th><input type="checkbox"></th>
				<th>分类ID</th>
				<th>分类名称</th>
				<th>分类描述</th>
				<th>操作</th>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>1</td>
				<td>手机数码</td>
				<td>手机数码类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>2</td>
				<td>电脑办公</td>
				<td>电脑办公类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>3</td>
				<td>鞋靴箱包</td>
				<td>鞋靴箱包类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>4</td>
				<td>家居饰品</td>
				<td>家居饰品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>5</td>
				<td>牛奶制品</td>
				<td>牛奶制品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr><tr>
				<td><input type="checkbox"></td>
				<td>6</td>
				<td>大豆制品</td>
				<td>大豆制品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>7</td>
				<td>海参制品</td>
				<td>海参制品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>8</td>
				<td>羊绒制品</td>
				<td>羊绒制品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>9</td>
				<td>海洋产品</td>
				<td>海洋产品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox"></td>
				<td>10</td>
				<td>奢侈用品</td>
				<td>奢侈用品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
		</table>
		
		<script type="text/javascript">
			/*
			 * 实现思想:
			 * 	表格行,分出奇偶数
			 * 		奇数行,设置背景色
			 * 		偶数行,设置另一背景色
			 * 		tagName("tr")返回数组,数组有索引
			 * 		设置背景色
			 */
			var color = "";
			//获取表格中所有行
			var trs = document.getElementsByTagName("tr");
			//遍历数组
			for(var i=2;i<trs.length;i++){
				//判断索引的奇偶数
				if(i%2==0){
					//设置偶数行的背景色
					trs[i].bgColor="#999";
				}else{
					//奇数行
					trs[i].bgColor="#ccc";
				}
				//为每个tr行,绑定鼠标的悬停事件
				trs[i].onmouseover=function(){
					//记录之前的背景色
					color = this.bgColor
					this.bgColor="#666";
				}
				//为每个tr行,绑定鼠标的移出事件
				trs[i].onmouseout=function(){
					//还原回原来的背景色
					this.bgColor=color;
				}
			}
		</script>
	</body>
</html>

全选和全不选

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>全选和全不选</title>
		<script type="text/javascript">
			/*
			 * 定义名字:
			 * 	上面复选框,总选框
			 * 	下面复选框,分选框
			 * <input type="checkbox"> 属性check="checked"
			 * 所有的分选框属性checked属性,跟随总选框的checked属性走
			 * 
			 * 
			 * 
			 */
			function selectAll(){
				//获取总选框
				var all = document.getElementById("all");
				//DOM中,属性checked属性值是真假值
				//获取所有分选框
				var checkBoxes = document.getElementsByClassName("itemSelect");
				for(var i=0;i<checkBoxes.length;i++){
					//所有的分选框属性checked属性,跟随总选框的checked属性走
					checkBoxes[i].checked=all.checked;
				}
			}
		</script>
	</head>
	<body>
		<table id="tab1" border="1" width="800" align="center" >
			<tr>
				<td colspan="5"><input type="button" value="删除"></td>
			</tr>
			<tr>
				<th><input type="checkbox" id="all" onclick="selectAll(this)" ></th>
				<th>分类ID</th>
				<th>分类名称</th>
				<th>分类描述</th>
				<th>操作</th>
			</tr>
			<tr>
				<td><input type="checkbox" class="itemSelect"></td>
				<td>1</td>
				<td>手机数码</td>
				<td>手机数码类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox" class="itemSelect"></td>
				<td>2</td>
				<td>电脑办公</td>
				<td>电脑办公类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox" class="itemSelect"></td>
				<td>3</td>
				<td>鞋靴箱包</td>
				<td>鞋靴箱包类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
			<tr>
				<td><input type="checkbox" class="itemSelect"></td>
				<td>4</td>
				<td>家居饰品</td>
				<td>家居饰品类商品</td>
				<td><a href="">修改</a>|<a href="">删除</a></td>
			</tr>
		</table>
	</body>
</html>

省市联动

省市菜单联动:从一个菜单中,找到省,再找到这个省对应的市,填充到另一个菜单中

事件:onchange

数据:省市数据怎么存储问题–>二维数组

注意:

<select id="provinceId" onchange="selectCity(this.value)">

this表示当前的标签对象,this就是select标签,this.value表示select标签的属性值,实际上获取的是option的value值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>用户注册</title>
		<style type="text/css">
			.regist_bg{
				  background: url(../img/regist_bg.jpg) repeat-x ;
				  width: 100%;
				  height: 600px;
				  padding-top: 40px;			
			}
			.regist{
				  border: 7px solid #ccc;
				  width: 800px;
				  padding: 40px 0;
				  padding-left: 80px;
				  background-color: #fff;
				  margin-left: 25%;				
			}
			input[type="submit"]{
				background-image: url(../img/register.gif);
				width: 100px; 
				height: 35px;
				color: #fff;
				cursor: pointer;
			}
		</style>
		
		<script type="text/javascript">
			/*
			 * 省市菜单联动:从一个菜单中,找到省,再找到这个省对应的市,填充到另一个菜单中
			 * 
			 * 事件:onchange
			 * 
			 * 数据:省市数据怎么存储问题-->二维数组
			 * 
			 * <select id="provinceId" οnchange="selectCity(this.value)">
			 * this表示当前的标签对象,this就是select标签,this.value表示select标签的属性值
			 * 实际上获取的是option的value值
			 */
			function selectCity(value){
				var citys = [
					["海淀","昌平","朝阳"],["长春","吉林","延边"],["南京","徐州","苏州"]
				];
				
				var str = "<option>----请-选-择-市----</option>";//拼接字符串
				var cityId = document.getElementById("cityId");
				if(value==""){
					cityId.innerHTML=str;
				}else{
					var city = citys[value];
					//遍历元素,元素填充到另一个select 的option中
					for(var i=0;i<city.length;i++){
						str+="<option>"+city[i]+"</option>";
						cityId.innerHTML=str;
					}
				}
			}
		</script>
		
	</head>
	<body>
		<div class="regist_bg">
			<div class="regist">
				<form action="../index.html" >
					<table  width="600" height="350px">
						<tr>
							<td colspan="3">
									<font color="#3164af">会员注册</font> USER REGISTER
							</td>
						</tr>
						<tr>
							<td align="right">用户名</td>
							<td colspan="2"><input id="loginnameId" type="text" name="loginname" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">密码</td>
							<td colspan="2"><input id="loginpwdId" type="password" name="loginpwd" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">确认密码</td>
							<td colspan="2"><input id="reloginpwdId" type="password" name="reloginpwd" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">Email</td>
							<td colspan="2"><input id="emailId" type="text" name="email" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">姓名</td>
							<td colspan="2"><input name="text" name="username" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">性别</td>
							<td colspan="2">
								<input type="radio" name="gender" value="" checked="checked" /><input type="radio" name="gender" value="" /></td>
						</tr>
						<tr>
							<td align="right">出生日期</td>
							<td colspan="2"><input type="text" name="birthday" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">所在地</td>
							<td colspan="3">
								<select id="provinceId" onchange="selectCity(this.value)" style="width:150px">
									<option value="">----请-选-择-省----</option>
									<option value="0">北京</option>
									<option value="1">吉林省</option>
									<option value="2">江苏省</option>
								</select>
								<select id="cityId" style="width:150px">
									<option value="">----请-选-择-市----</option>
								</select>
								
							</td>
						</tr>
						<tr>
							<td width="80" align="right">验证码</td>
							<td width="100"><input type="text" name="verifyCode" /> </td>
							<td><img src="../img/code.png" /> </td>
						</tr>
						<tr>
							<td></td>
							<td colspan="2">
								<input type="submit" value="注册" /> 
							</td>
						</tr>
					</table>
				</form>
			</div>
		</div>
		
	</body>
</html>

表单验证

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>用户注册</title>
		<style type="text/css">
			.regist_bg{
				  background: url(../img/regist_bg.jpg) repeat-x ;
				  width: 100%;
				  height: 600px;
				  padding-top: 40px;			
			}
			.regist{
				  border: 7px solid #ccc;
				  width: 800px;
				  padding: 40px 0;
				  padding-left: 80px;
				  background-color: #fff;
				  margin-left: 25%;				
			}
			input[type="submit"]{
				background-image: url(../img/register.gif);
				width: 100px; 
				height: 35px;
				color: #fff;
				cursor: pointer;
			}
		</style>
		
		<script type="text/javascript">
			function checkForm(){
				var flag = false;
				//获取填写的用户名:数字,字母,下划线,长度6-10
				var username = document.getElementById("loginnameId").value;
				//定义用户名规则
				var userReg = /^[a-zA-Z0-9_]{6,10}$/;

				if(userReg.test(username)){
					//验证通过
					flag = true;
				}else{
					//验证失败
					var userMsg = document.getElementById("userMsg");
					userMsg.innerHTML="用户名必须是数字,字母或下划线_,长度为6-10";
					userMsg.style.color="red";
					flag = false;
				}
				
				//获取邮件地址
				var email = document.getElementById("emailId").value;
				//定义邮箱的正则
				/*
				 * @前面:数字,字母,下划线
				 * @后面:小写字母,数字
				 */
				var emailReg = /^[a-zA-Z0-9_]+@[a-z0-9]{2,}(\.[a-z]+)+$/;
				if(emailReg.test(email)){
					flag = true;
				}else{
					var emailMsg = document.getElementById("emailMsg");
					emailMsg.innerHTML="邮箱格式不正确";
					emailMsg.style.color="red";
					flag = false;
				}
				return flag;
			}
		</script>
		
	</head>
	<body>
		<div class="regist_bg">
			<div class="regist">
				<form action="#" method="post" onsubmit="return checkForm()" >
					<table  width="600" height="350px">
						<tr>
							<td colspan="3">
									<font color="#3164af">会员注册</font> USER REGISTER
							</td>
						</tr>
						<tr>
							<td align="right">用户名</td>
							<td colspan="2"><input id="loginnameId" type="text" name="loginname" size="60"/> 
							 <br/> <span id="userMsg"></span>
							</td>
						</tr>
						<tr>
							<td align="right">密码</td>
							<td colspan="2"><input id="loginpwdId" type="password" name="loginpwd" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">确认密码</td>
							<td colspan="2"><input id="reloginpwdId" type="password" name="reloginpwd" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">Email</td>
							<td colspan="2"><input id="emailId" type="text" name="email" size="60"/>
							  <br /><span id="emailMsg"></span>
							</td>
						</tr>
						<tr>
							<td align="right">姓名</td>
							<td colspan="2"><input name="text" name="username" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">性别</td>
							<td colspan="2">
								<input type="radio" name="gender" value="" checked="checked" /><input type="radio" name="gender" value="" /></td>
						</tr>
						<tr>
							<td align="right">出生日期</td>
							<td colspan="2"><input type="text" name="birthday" size="60"/> </td>
						</tr>
						<tr>
							<td align="right">所在地</td>
							<td colspan="3">
								<select id="provinceId" onchange="selectCity(this.value)" style="width:150px">
									<option value="">----请-选-择-省----</option>
									<option value="0">北京</option>
									<option value="1">吉林省</option>
									<option value="2">江苏省</option>
								</select>
								<select id="cityId" style="width:150px">
									<option value="">----请-选-择-市----</option>
								</select>
								
							</td>
						</tr>
						<tr>
							<td width="80" align="right">验证码</td>
							<td width="100"><input type="text" name="verifyCode" /> </td>
							<td><img src="../img/code.png" /> </td>
						</tr>
						<tr>
							<td></td>
							<td colspan="2">
								<input type="submit" value="注册" /> 
							</td>
						</tr>
					</table>
				</form>
			</div>
		</div>
		
	</body>
</html>

JS内置对象(更多方法可查看W3C文档)

String

与java基本相同

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 * JS内置对象String
			 */
			var str = "abcdef";
			//字符串长度是length属性,不是方法
			alert(str.length);
			//charAt,传递索引,返回字符
			alert(str.charAt(3));//d
			alert(str.charAt(31));//空串
			//indexOf, 传递字符串,返回第一次出现的索引,找不到返回-1
			alert(str.indexOf("c"));//2
			alert(str.indexOf("C"));//-1
			
			//substring,截取字符串,包含开始索引,不包含结束索引
			alert(str.substring(1,4));//bcd
			//substr,截取字符串,包含开始索引,后面的参数是要几个
			alert(str.substr(1,4));//bcde
			
		</script>
	</body>
</html>

Date

Date对象:

  • getFullYear() 从 Date 对象以四位数字返回年份。
  • getMonth() 从 Date 对象返回月份 (0 ~ 11)。
  • getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 * Date
			 * 
			 * 
			 */
			var date = new Date();
			//alert(date);
			//getFullYear() 从 Date 对象以四位数字返回年份。 
			//getMonth() 从 Date 对象返回月份 (0 ~ 11)。 
			//getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 
			alert(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日");
			
			
		</script>
	</body>
</html>

Math

调用方式:Math.函数();

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 Math
			 调用方式:Math.函数();
			 
			 * */
			//向上取整
			alert(Math.ceil(12.2));//13
			//向下取整
			alert(Math.floor(-15.5));//-16
			//四舍五入
			alert(Math.round(5.5));//6
			//随机数,返回小数(0.0-1.0)之间,可能是0.0,不可能是1.0
			alert(Math.random())
			//幂运算
			alert(Math.pow(2,3));
		</script>
	</body>
</html>

Array

JS的数组是变长数组,Java是定长数组

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 * Array,数组
			 * JS的数组是变长数组,Java是定长数组
			 * 
			 */
			//创建方式一:数组中没有元素,空架子
			var arr = new Array();
			//创建方式二:指定长度
			var arr = new Array(3);
			//赋值,弱类型,随不赋值
			arr[0]=1;
			arr[1]="123";
			arr[2]=55.5;
			arr[2]=52;
			
			arr[7]=222;
			//alert(arr);
			
			//创建方式三:直接赋值
			//如果参数只写一个,而且是数字,那认为是长度
			//如果参数只写一个,但不是数字,那认为是元素
			var arr2 = new Array("a",100,200);
			//var arr3 = new Array(4.4);//出错
			
			//创建方式四
			var arr4 = [3,"mma","kkk"];
			alert(arr4);
			
		</script>
	</body>
</html>

二维数组:元素是一维数组

  • Java例子:
    int[][] arr = new int[2][3]
    sout(arr);
  • JS:
    var arr = [[1,2,3],[4,5,6]
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 二维数组:元素是一维数组
			 Java例子:
			 	int[][] arr = new int[2][3]
			 	sout(arr);
			 JS:
			 	var arr = [[1,2,3],[4,5,6]]
			 	
			 * */
			var arr = [[1,2,3],[4,5,6]]
			//输出2
			alert(arr[0][1]);
			
			//遍历
			for(var i=0;i<arr.length;i++){
				for(var j=0;j<arr[i].length;j++){
					alert(arr[i][j]);
				}
			}
		</script>
	</body>
</html>

regExp

JS内置对象RegExp,正则表达式
正则表达式意义:对字符串进行处理的技术
正则表达式的本质:是一种规则,字符串和规则进行匹配

在这里插入图片描述
练习一
要求:手机号,验证格式

手机号格式:

  • 1开头
  • 第二位:3,4,5,6,7,8,9
  • 11位全为数字

正则表达式规则:定义在//内

var telReg = /1[3456789][\d]{9}/;
//正则表达式对象方法test(字符串),返回真假值
var b = telReg.test("13810010011");
alert(b);

注意:如果在java中这么写没有问题,但js中不行,如果手机号超出11位,b值为true。

修改:以^为开头,以$为结尾

var telReg = /^1[3456789][\d]{9}$/;
//正则表达式对象方法test(字符串),返回真假值
var b = telReg.test("13810010011");
alert(b);

java中使用正则

String reg = "[\w]{3-8}";
"abc".matches(reg);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值