前端概述06

js内置对象array

<!-- 
			目前:记住js的创建数组三种格式
		
		
			在js中Array对象特点,跟Java中的数组不一样的,
			js是一个弱类型语言,数组对象中不存在角标越界,元素可以不断扩容!
				而且js数组对象可以存储任何类型的元素!
			
			
			创建Array对象三种方式
					var  数组对象名 = new Array() ;//不指定长度
					var  数组对象名 = new Array(size) ;//指定数组长度
					
					var  数组对象名 = new Array([元素1,元素2,...]) ;
					它可以简化为
					var  数组对象名 = [元素1,元素2,...] ;
					
					
			不管js还是java,数组都有一个length属性:获取数组长度
		 -->
		 <script>
			//方式1:创建数组对象
			//var arr = new Array() ;
			
			//方式2:  数组对象名 = new Array(size) ;//指定数组长度
		//	var arr = new Array(4) ; // 数组中最大索引值:arr.length-1
		
		
		//方式3:var  数组对象名 = [元素1,元素2,...] ;
		//var arr = [10,20,30,40,"hello",true,'a',100,3.14,new Object()] ;
		//虽然可以存储任何类型,但是实际开发中,具体的元素类型肯定统一的!
		
		var arr = ["陕西省","山西省","广西省"] ;	
			
			//对象名.length属性:获取长度
			//alert(arr.length) ;
			//分配数组元素
			//数组的对象名称[索引值] = 实际值;  //索引值从开始
			/* arr[0] = 1 ;
			arr[1] = 10 ;
			arr[2] = 20 ;
			arr[3] = 30 ;
			arr[4] = 100; */
			alert(arr.length) ;
			
			
			//遍历数组,获取arr数组对象的运算
			for(var i = 0 ; i < arr.length ;i++){ //i就是角标 0,1,2,3,4
				document.write(arr[i]+"<br/>") ;//i=0,0<3,arr[0]
			}
			
			
		 </script>

js自定义对象的方式

<script>
			/* 自定义对象
			 
				定义一个对象,格式和定义函数相同的,形式参数不能带var
				
				
				方式1:function 对象名(形式列表...)
				//定义一个对象
				function 对象(属性1,属性2,属性3...){  //属性就是某个真实世界事物的特征!
					
					//给属性赋值
					//给对象添加功能(方法)
				}
				创建对象
				var 对象名 = new 对象(实际参数1,实际参数2,实际参数3....)
				
			 */
			
			//定义一个人对象 
		/* 	function Person(name,age,gender,address){//姓名,年龄,性别,住址  属性
				//给属性赋值
				
				//=号左边name:就相当于要给Person对象添加name值 (this:代表的是当前Person对象一个地址值 (先了解))
				//=号右边name 当前形式参数里面的name
				
				
				//this.属性名称 = 形式参数值;
				this.name = name ; //this.name = 高圆圆 ''
				this.age = age ;//this.age = 30
				this.gender = gender ;//this.gendser = "女"
				this.address = address; //this.addrss = "南窑国际";
				
				//给对象添加功能(方法)
				//人会说英语
				
				//this.方法名 = function(){}
				this.speak = function(a){ //方法里面参数   a="英语"
					alert("会说"+a) ;
				}
				this.playGame = function(gameName){//gameName
					alert("会玩"+gameName) ;
				}
				
			} */
			//创建一个具体的人:创建对象
			//var 对象名 = new 对象(实际参数1,实际参数2,实际参数3....)
			//var p = new Person("高圆圆",30,"女","南窑国际") ;
			
			
			//方式2:定义对象的时候,function 对象(){} //不携带参数了
			
					//创建对象: var 对象名 = new 对象() ;
			//定义一个人对象
			/* function Person(){
				
			}
			
			
			//创建对象 人对象
			var p = new Person() ;
			
			//自己追加属性
			//对象名.追加的属性名称 = 实际值;
			p.name = "文章" ;
			p.age = 20 ;
			p.gender = "男" ;
			p.address = "西安市" ;
			p.high = 180 ; //身高
		
			
			//追加方法
			//对象名.追加的方法名 = function(空参/带参数) {...}
			p.speak =function(a){//"英语"
				alert("会"+a) ;
			}
			
			p.playGame = function(gameName){
				alert("会玩"+gameName) ;
			}
			
			//学习的方法
			p.study=function(className){ //前端的javascript
				alert("正在学习"+className) ;//"正在学习前端的javascript""
			} 
			//输出这个人的基本信息
			//对象名.属性名 =获取内容
			//对象名.方法名() ;调用方法
			document.write("这个人的姓名是:"+p.name+",这个人的年龄是:"+p.age+",性别是:"+p.gender
			+",住址是:"+p.address+",身高为:"+p.high) ;
			
			p.speak("英语") ;
			p.playGame("csGo") ;
			p.study("前端的javascript") ;
			
			*/
			
			
			
			//方式3:
			//利用js内置对象:Object,代表的所有对象的模板!
			//var 对象名 = new Object() 
			
			//直接创建对象
			/* var p = new Object() ;
			
			//追加属性
			//对象名.属性名 = 值;
			p.brand = "华为mate30pr0" ;// brand:品牌
			p.price = 4699 ; //price:价格
			p.color = "粉翠绿" ; //color:手机颜色
			p.memory = "64G" ; //memory:手机内存
			
			//追加方法
			//对象名.追加的方法名 = function(空参/带参数) {...}
			
			//打电话
			p.call = function(toName){//高圆圆
				alert("这个手机给可以给"+toName+"打电话了") ;
			}
			//发短信
			p.sendMessage = function(){
				alert("可以发短信") ;
			}
			
			//打印出 手机信息 以及调用手机的这两个功能
			document.write("手机品牌是:"+p.brand+",它的价格是:"+p.price+
			",机身颜色是:"+p.color+",它的机身内存是:"+p.memory) ;
			
			p.call("高圆圆") ;
			p.sendMessage() ; */
			
			
			//方式4:后期经常用到(重点),json数据格式(也称为 "字面量值的方式") 
			
			//json:Js对象简谱,是一种数据交互的格式(体现,前后端交互,使用json传参)
			//json数据解析速度非常快!
			/*
				var 对象名 = {"key1":value1,"key2":value2....}
				
				
				现在描述一个具体学生事物
					
				  姓名,年龄,性别,地址这个几个属性	  
			*/
		   var student = {
							//追加属性
							"name":"王宝强",
							 "age":35 ,
						 "gender" :"男",
						 "address":"渭南市",
						 
						 //追加方法:
						 //"方法名":function(){...}
						 
						 //学习
						 "study":function(){
							 alert("学习Javascript") ;
						 }
			   
						};
						
						//方式4
		//json开发中常用的数据格式--也称字面量值方式
		//json 数据简谱 是一种前后端数据交互的格式使用json传参 解析速度很快
		/*  Dom:document object model基于文档对象模型编程,当浏览器解析
		html页面时,内置javascript引擎将html中所有标签,都将它封装成标签对象
		(元素对象/节点对象)从而形成树状结构,看节点关系
			var 对象名 = {"key1":value1,"key2":value2…}
		 */
		
		//追加属性
		var student = {
			"name":"杨子江",
			"age":22,
			"sex":"男",//字符得带双引号
						
			//访问方式:    var 值 = 对象名.key	 ;		
			document.write("学生的姓名是:"+student.name+"<br/>") ;
			document.write("学生的年龄是:"+student.age+"<br/>") ;
			document.write("学生的性别是:"+student.gender+"<br/>") ;
			document.write("学生的住址是:"+student.address+"<br/>") ;
			//访问方法
			//对象名.方法名() ;
			student.study() ;
			
			
			
		
		</script>

js常用事件编程

<!-- 	
			这些所有的事件在标签上 只需要在事件名称前面加上on..,将指定的事件绑定到onxx属性上
		
			1)点击相关的事件
					单击  click    -- onclick属性
					双击  dbclick  -- ondblick属性
			2)焦点事件
					获取焦点  focus -- onfocus属性
					失去焦点  blur -- onblur
					
			3)选项卡发生变化的事件,一般用在select下拉菜单中
					事件名称 change  --onchange属性
		 -->
	</head>
	<body>
		<input type="button" value="click" onclick="testClick()" /><br/>
		<input type="button" value="dbClick" ondblclick="testDbClick()" /><br/>
		用户名:<input type="text" id="username" value="请输入用户名" 
		onfocus="testFouces()" onblur="testBlur()" /><span id="tip"></span> <br/>
		<hr/>
		籍贯:
		<select onchange="testChange()" id="pro">
			<option value="请选择">请选择</option>
			<option value="陕西省">陕西省</option>
			<option value="山西省">山西省</option>
			<option value="广东省">广东省</option>
		</select>
		<select id="city">
				<!-- <option value="西安市">西安市</option> 
					 <option value="渭南市">渭南市</option>
				-->
			
		</select>
	</body>
	<script>
		//单击点击事件函数
		function testClick(){
			alert("单击事件触发") ;
		}
		//双击点击事件的函数
		function testDbClick(){
			alert("双击事件触发") ;
		}
		
		//定义获取焦点事件函数
		function testFouces(){
			//将文本输入框的value属性值清空掉
			//dom操作:通过id="username"获取input标签对象
			var a =  document.getElementById("username") ;
			//将input标签对象的value属性清空掉
			a.value = "" ;
		}
		
		//定义一个函数:失去焦点的函数
		function testBlur(){
			
			//需求:当鼠标移出文本框,触发失去焦点事件,
			//获取文本输入的内容,判断它的内容如果不是"高圆圆",在文本输入框的后面提示,"是否可用"
			
			//1)获取文本输入框的内容
			var username = document.getElementById("username").value ;
			
			//2)获取id="tip"所在的span标签对象
			var a = document.getElementById("tip") ;
			//3)逻辑判断
			if(username !="高圆圆"){
				//给span标签对象设置文本
				a.innerHTML = "×".fontcolor("red") ;
			}else{
				//可用
				a.innerHTML = "√".fontcolor("green") ;
			}
			
		}
	
	
		//定义函数:选项卡发生变化的事件
		function testChange(){
			//alert("选项卡变化了") ;
			//通过id="pro" 所在的select标签,获取它的标签对象
			//同时获取下拉菜单的内容
			var province = document.getElementById("pro").value ;
			//alert(province) ;
			//应该要给第二个select标签(城市所在的下拉菜单),获取它的标签对象,动态给力拼接城市
			//获取id="city"所在的select标签对象
			var city =  document.getElementById("city") ;
			
			//将city的innerHTML清空掉
			
			city.innerHTML = "" ;
			//判断选择的省份的内容是否为"陕西省"/"山西省"/"广东省"
			if(province=="陕西省"){
				//定义一个城市数组
				var arr = ["西安市","渭南市","咸阳市","宝鸡市"] ;
				
				//遍历数组,获取每一个城市
				for(var i = 0 ; i < arr.length;i++){
					// 拼接<option value="渭南市">渭南市</option> 文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML +="<option value="+arr[i]+">"+arr[i]+"</option> "
				}
				
			}
			
			if(province=="山西省"){
				//定义一个城市数组
				var arr = ["太原市","晋中市","临汾市","大同市"] ;
				
				//遍历数组,获取每一个城市
				for(var i = 0 ; i < arr.length;i++){
					// 拼接<option value="渭南市">渭南市</option> 文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML +="<option value="+arr[i]+">"+arr[i]+"</option> "
				}
				
			}
			
			if(province=="广东省"){
				//定义一个城市数组
				var arr = ["广州市","东莞市","佛山市","深圳市"] ;
				
				//遍历数组,获取每一个城市
				for(var i = 0 ; i < arr.length;i++){
					// 拼接<option value="渭南市">渭南市</option> 文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML += "<option value="+arr[i]+">"+arr[i]+"</option> "
				}
				
			}
			
		}
	</script>

js

<script>
		/* var arr = new Array(3);js是弱类型语言,所以不存在角标越界,元素可以不断扩容
		可以存放任何类型的元素,1)指定数组长度2)不指定数组长度
		alert(arr.length);
		arr[0]=1;索引值从0开始 数组的对象名称[索引值]=实际值
		arr[1]=2;
		arr[2]=3;
		arr[3]=4;
		
		 */
		//存放方式3)
		var arr = [1,2,"a","b"]//可以存储各种类型,但在实际开发中,具体元素按照格式统一存放
		alert(arr.length);//对象名.length属性:获取长度
		
		for(i=0;i<arr.length;i++){//从1开始的话 终值arr.length-1
			document.write(arr[i]+"<br />");
		}
	</script>

点击图1切换图2 再次点击切换回来

<title>如何用js实现点击图片切换为另一个图片 再次点击恢复</title>
	</head>
	<body>
		<!-- <input type="text" placeholder="请输入用户名" id="username" onblur="get()"/> -->
		<div id="button">
			<img id="pic"  src="img/下载.jfif" />
		</div>
	</body>
	<script>
	/*  function get(){
		var input = document.getElementById("username");
		
		alert(input.value);
		} */
		
		function change(){
			var button = document.getElementById("button");
			var pic = document.getElementById("pic");
			
			button.onclick = function(){
				if(pic.getAttribute("src",2)=="img/OIP-C.jfif"){
					pic.setAttribute("src","img/下载.jfif");
				}else{
					pic.setAttribute("src","img/OIP-C.jfif");
				}
			}
		}
		
		change();
	</script>

常见的dom操作

<script>
				function test(){
					//alert("失去焦点事件触发");
					//方式1 document.getElementById("Id属性值")
					//常用的需要在标签中给定唯一id值
					
				var input = document.getElementById("username");
				//通过id="username"获取input对象
				
			
			//方式2:docuement.getElementsByClassName("页面中所有同名的class属性值"),需要在标签中给定class属性值
			 // 获取的不是单个标签对象,而是标签对象列表,理解为一个数组,
			 //var input = document.getElementsByClassName("c1")[0] ;
			 
			 //方式3:docuement.getElementsByName("页面中所有同名的name属性值") ;
			 //在标签中给定name属性值
			 //var input = document.getElementsByName("name")[0] ;
			 
			 //方式4:docuement.getElementsByTagName("页面中所有同名的标签名称") ;
			 //var input = document.getElementsByTagName("input")[
			
			//获取它的value属性:获取内容
			 alert(input.value);
			
			
			
				}
	</script>

事件编程

<title>常用的事件编程</title>
		<!-- 
			这些所有的事件在标签上 只需要在事件名称前面加上on,将指定的事件绑定到onxx属性上
			
			1)点击相关的事件
				单击 click -- onclick属性
				双击 dbclick -- ondbclick属性
			2)焦点事件
				获取焦点 focus --onfocus属性
				失去焦点blur -- onblur
			3)选项卡发生变化的事件,一般用在select下拉菜单中
				事件名称change -- onchange属性
		 -->
	</head>
	<body>
		<input type="button" value="click" onclick="testClick()" /><br />
		<input type ="button" value="dbclick" ondblclick="testDbClick()" /><br />
		<!-- 不要忘记onclick属性后面跟的是函数,所以要加() 既onclick = "testClick()" -->
		用户名:<input type="text" id="username" value="请输入用户名"
		 onfocus="testfocus()" onblur="testBlur()"/><span id="tip"></span><br />
		 <hr />
		 籍贯:
		 <select onchange="testChange()" id="pro">
			 <option value="请选择">请选择</option>
			 <option value="陕西省">陕西省</option>
			 <option value="山西省">山西省</option>
			 <option value="广东省">广东省</option>
		 </select>
		 <select id="city"></select>
	</body>
	<script>
		function testClick(){
			alert("单击事件触发");
		}
		function testDbClick(){
			alert("双击事件触发");
		}
		
		//定义获取焦点事件函数
		function testfocus(){
				//将文本输入框的value属性值清空掉
				//dom操作:通过id="username"获取input标签对象
				var a = document.getElementById("username");
				//将input标签对象的value属性清空掉
				a.value="";
		}
		
		//定义一个函数 :失去焦点的函数
		function testBlur(){
			//需求:当鼠标移出文本框,触发失去焦点事件
			//获取文本输入的内容,判断它的内容如果不是"林宥嘉",在文本输入框的后面提示 "是否可用"
			
			//1)获取文本输入框的内容
			var username = document.getElementById("username").value;
			 
			//2)获取id="tip"所在的span标签对象
			var a = document.getElementById("tip");
			
			//3)逻辑判断
			if(username != "林宥嘉"){
				//给span标签对象设置文本
				a.innerHTML = "错误不可用".fontcolor("red");
			}else{
				//可用
				a.innerHTML = "恭喜可用".fontcolor("green");
			}
		
		}
		
		
		//定义函数:选项卡发生变化的事件
		function testChange(){
			//alert("选项卡变化了");
			//通过id="pro"所在的select标签,获取它的标签对象
			//同时获取下拉菜单的内容
			var province = document.getElementById("pro").value;
			//alert(province)
			//应该要给第二个select标签(城市所在的下拉菜单),获取它的标签对象,动态给力拼接城市
			//获取id="city"所在的select标签对象
			var city = document.getElementById("city");
			//将city的innerHTML清空
			
			city.innerHTML = "";
			//判断选择的省份的内容是否为"陕西省"/"山西省"/"广东省"
			if(province=="陕西省"){
				//定义一个城市数组
				var arr = ["西安市","渭南市","咸阳市","宝鸡市"];
				
				//遍历数组,获取每一个城市
				for(var i = 0;i<arr.length;i++){
					//拼接<option value="渭南市">渭南市</option>文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML += "<option value="+arr[i]+">"+arr[i]+"</option>"
				}
				
			}
			
			if(province=="山西省"){
				//定义一个城市数组
				var arr = ["太原市","晋中市","临汾市","大同市"];
				
				//遍历数组,获取每一个城市
				for(var i = 0;i<arr.length;i++){
					//拼接<option value="渭南市">渭南市</option>文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML += "<option value="+arr[i]+">"+arr[i]+"</option>"
				}
				
				
				
			}
			
			if(province=="广东省"){
				//定义一个城市数组
				var arr = ["广州市","东莞市","佛山市","深圳市"];
				
				//遍历数组,获取每一个城市
				for(var i = 0;i<arr.length;i++){
					//拼接<option value="渭南市">渭南市</option>文本
					//给city标签对象(代表就是第二个select标签对象)拼接上面的文本
					city.innerHTML += "<option value="+arr[i]+">"+arr[i]+"</option>"
				}
				
				
				
			}
			
			
			
			
		}
		
			
	</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值