jQuery

1. 什么是jQuery
它是一个轻量级的javascript类库

注1:就一个类“jQuery”,简写“$”

2. jQuery优点
2.1 总是面向集合
2.2 多行操作集于一行

3.如何使用jQuery(hello jQuery)
3.1 导入js库
<script type="text/javascript" src="js库路径"></script>

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-3.3.1.js"></script>

  

$(fn)、$(document).ready(fn)与window.onload的区别

     window.onload=function(){
	     alert("3")
     }
     $(document).ready(function(){
    	 alert("2")
     })
     $(function(){
    	 alert("1");
     })
 /*
  *结论:$(fn)、$(document).ready(fn)是等价的。那个代码在前面哪个先执行。
  *jsp的dom树结构加载完毕即刻调用方法
  *window.onload最后执行
  *jsp的dom树加载完,css,js等静态资源加载完毕执行
  */
     

  

4.jQuery三种工厂方法
4.1 jQuery(exp[,context])
exp:选择器

context:上下文 容器/环境 默认:document

/* 4.jQuery三种工厂方法
	   4.1 jQuery(exp[,context])
		exp:选择器
		c */ontext:上下文	容器/环境  默认:document
	//利用a标签获取jquery实例
	//元素选择器
	/* $("a").click(function(){
		alert("被翻牌子了");
	}); */
	//利用ID=a3标签获取jquery实例
		//ID选择器
	/* $("#a3").click(function(){
		alert("被翻牌子了");
	}); */
	//类选择器
	/* $(".c1").click(function(){
		alert("被翻牌子了");
	}); */
	//包含选择器(E1 E2)
	/* $("p a").click(function(){
		alert("被翻牌子了");
	}); */
	//组合选择器(E1,E2)
	/* $("a,span").click(function(){
		alert("被翻牌子了");
	}); */
	//讲解第二个参数的作用(在DIV标签内部寻找到a标签,然后给找到的标签添加事件)
	//如果第二个参数没有填写,那么默认是document
	//属性选择器
	$("a","div").click(function(){
		alert("被翻牌子了");
	});
})
</script>
</head>
<body>
	<p>
		<a id="a1" class="c1" href="#">点我1</a>
	</p>
	<p>
		<a id="a2" class="c2" href="#">点我2</a>
	</p>
	<p>
		<a id="a3" class="c3" href="#">点我3</a>
	</p>
	<div>
		<a id="a4" class="c1" href="#">点我4</a>
	</div>
	<div>
		<p>
			<a id="a5" class="c1" href="#">点我5</a>
		</p>
	</div>
    <span>点我</span>
    
</body>

  

jQuery.fn.extend()就是扩展jQuery本身的实例方法 “对象名.方法名”
jQuery.extend()就是扩展jQuery本身的类方法。静态方法 “类名.静态方法名”

2.JSON的三种方式

2.1 对象
{sid:'p001',sname:'zhangsan'}

2.2 列表/数组
[1,3,4,5]
[{},{},{}]
$.each(数组,function(idx,elem){

});

2.3 混合模式
{id:3,num:[1,3,4,5]}
{total:81,page:1,list:[{对象},{对象},{对象}]}

2.4 JSON转换
将字符串转成json对象: JSON.parse()
将对象、数组转换成字符串:JSON.stringify()
var obj={id:’001’:name:’zhangsan’

$(function() {

		var obj={sid:'001',snaem:'zs'};
		console.log(obj);
		//1.将对象.数组转化成字符串JSON.stringify();
		var tostr=JSON.stringify(obj);
		console.log(tostr);
		
		//2将字符串转化成JSON对象
		var toobj=JSON.parse(tostr);
		console.log(toobj); 

		//.$.extend和$.fn.extend
		//1.1$.extend(obj1,obj2,obj3[,...])
		//将所有参数合并到obj1,并返回obj1;
		var obj1={'pid':'001','pname':'李四'};
		var obj2={'pid':'007'};
		var obj3={'card':'43101010001'};
		console.log(obj1.pid+','+obj1.pname+','+obj1.card);
		$.extend(obj1,obj2);
		console.log(obj1.pid+','+obj1.pname+','+obj1.card);
		$.extend(obj1,obj2,obj3);
		console.log(obj1.pid+','+obj1.pname+','+obj1.card);
		
		console.log("obj2:"+JSON.stringify(obj2)); 
		
		 //以obj参数扩展Jquery类方法和类属性(静态方法和静态属性)
		//$.extend(obj):一次能扩展多个类方法
		//$.method=function(option){};一次只能扩展一个类方法
		  var obj = {
			add : function(a, b) {
				return a + b;
			},
			minus : function(a, b) {
				return a - b;
			}

		}
		 
		 
		 $.extend(obj); 
		
		var res=$.add(4,6);
		console.log(res);
		
		var ues=$.minus(8,4);
		console.log(ues);

		//$.method=function(option){};一次只能扩展一个类方法
		$.div=function(a,b){
			return a*b;
		};
		
		var res=$.div(2,2);
		console.log(res); 
		
		//$.fn.extend:扩展jquery对象的实例方法
		//实例化对象名.方法名
		
		 $.fn.extend({
			color:function(){
				return $(this).css({'background':'red'});
			}
		});
		
		$('div').color();
		
		$('table').bgcolor();
		
		
	}); 

  

 

  

1.1 什么是Jackson
Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

1.2 核心代码
//JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现

对象User

package com.demo;

public class User {
private int age;
private String name;
private int id;
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public User(int age, String name, int id) {
	super();
	this.age = age;
	this.name = name;
	this.id = id;
}


}

  

//JSON操作的核心,Jackson的所有JSON操作都是在
   ObjectMapper mapper=new ObjectMapper();
  // 1.3.1 JavaBean、Map集合与JSON互转
  //	1)JavaBean/Map转JSONs
   //  2)JavaBean转json对象
      User user=new User(1, "lisji", 4);
      String objtojson=mapper.writeValueAsString(user);
      System.out.println(objtojson);
      
     //1.2map集合转化成json对象
     Map<String, Object> map=new HashMap<String, Object>();
     map.put("pid", "p001");
     map.put("pname", "zhangs");
     map.put("page", "18");
     String maptojson=mapper.writeValueAsString(map);
     System.out.println(maptojson);
     
     //1.3json对象转化成javabean对象
     String jsonStr="{\"pname\":\"zhangs\",\"pid\":\"p001\",\"page\":\"18\"}";
     User  us=mapper.readValue(jsonStr, User.class);
    // System.out.println(us);
   
     //1.4JSON对象转化成map集合
     //TypeReference(json对象序列化与反序列化)
     Map<String, Object> jsonTMap= mapper.readValue(jsonStr, new TypeReference<Map<String, Object>>() {
     });
   //System.out.println(jsonTMap);
   

  

4.插件:表格行颜色切换效果

新建bgcolor.css文件

.head{
	background: #ccc;
}
.over{
	background: red;
}
.out{
	background: #fff;
}

 创建js文件jquery.bgcolor.js

$.fn.extend({
	bgcolor:function(options){
		//判空处理
		options=options||{};
		var defaults={
				headClass:'head',
				overClass:'over',
				outClass:'out'
		};
		//扩展jquery本身的类方法,命名参数写发
		$.extend(defaults,options);
		
		return $(this).each(function(){
			//修改表头的颜色
			$("tr:eq(0)",this).addClass(defaults.headClass);
			//添加行的悬停效果
			$("tr:gt(0)",this).addClass(defaults.outClass).hover(function(){
				$(this).removeClass(defaults.outClass).addClass(defaults.overClass);
			},function(){
				$(this).removeClass(defaults.overClass).addClass(defaults.outClass);
			});
		});
			
	}
	
})

  引入插件

<script type="text/javascript" src="js/plugins/bgcolor/jquery.bgcolor.js"></script>
<link rel="stylesheet" type="text/css" href="js/plugins/bgcolor/bgcolor.css">

  效果

 

 


2.2 jQuery之Ajax实现省市县级联动(数据库版)

$(function(){
	query($("#prov"),7459)
	$("#prov").change(function(){
		query($("#city"),$(this).val())
	});
	$("#city").change(function(){
		query($("#town"),$(this).val())
	})
	$("#prov").change(function(){
		query($("#town"),$(this).val())
	})
	
});
function query(obj,pid){
	$.ajax({
		url:'RegionAction',
	   data:{"parent_id":pid},
	   dataType:'json',
	   type:'post',
	   success:function(data){
		  obj.find("option:not(:first)").remove();
		   $.each(data,function(idx,elem){
			  obj.append("<option value='"+elem.id+"'>"+elem.region_name+"</option>")
		   });
	   }
	   
	});
}

</script>
</head>
<body>
<select id="prov">
<option value="">请选择</option>
</select>
<select id="city">
<option value="">请选择</option>
</select>
<select id="town">
<option value="">请选择</option>
</select>

  效果

 

posted @ 2019-06-26 21:57  小蜜疯  阅读(215)  评论(0编辑  收藏  举报