jquery

1.什么是jQuery
Query是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。

先弄一个文件夹把jquery架包弄进去
在这里插入图片描述
jQuery三种工厂方法
标签选择器

$("p").click(function(){
 		alert(“hello”);
})

类选择器

$(".c1").click(function(){
 	alert(“hello”);	
 })

组合选择器

$("p a").click(function(){
			alert(“hello”);
})

自定义选择器

$("p","div").click(function(){
			alert(“hello”);
})

jQuery(html)

<script type="text/javascript">
	$(function () {
		$(":input[name='name1']").click(function () {
			$("#selId1").append("<option value='1'>湖南</option>")
		})
		$(":input[name='name2']").click(function () {
			$("<option value='1'>长沙</option>").appendTo("#selId2");	
		})
		
	})
</script>

jQuery(element)

//jquery对象转为js对象
		var $qu = $("#jj");
		var qu = $qu.get(0);//第一种
		var qu = $qu[0];//第二种
		alert(qu.value);
//js对象转为jquery对象
		var qu = document.getElementById("#jj");
		$qu = $(qu);
		alert($qu.html());

.jQuery程序的入口

<script type="text/javascript">
 	$(function () {
		alert("hello jquery");
	}) 
	
	$(document).ready(function () {
		alert("hello jquery");
	}) 
	
	window.onload = function(){
		alert("hello jquery");
	}
</script>


第二个2.JQuery插件
第一个知识点 2.1 json的三种格式

<script type="text/javascript">
	$(function () {
	//	json对象
		var jsonObj1={sid:'s001',sname:'zhangsan'}
	//  控制台里看json对象属性
		console.log(jsonObj1);
		
	//  json数组
		var jsonArray=[1,2,3,4];
		console.log(jsonArray);
	//  混合模式下的json	
		var jons={id:3,hobby:['A','B','C']}
		console.log(jons);
	})
</script>

2.2 $.extend $.fn.extend
2.3 $.extend:对象的扩展(或继承)
// 用后面对象的扩充前面的对象

var jsonObj2={};
		$.extend(jsonObj2,jsonObj1)
	console.log(jsonObj2);

// 用后面的两个对象扩充第一个对象,之前已经扩充的属性值会被后面的对象覆盖,如果后面对面对象有新的属性,就会继续扩充

var jsonObj2={};
			$.extend(jsonObj2,jsonObj1,jsonObj3)
	console.log(jsonObj2);

$.fn.extend

$.extend({
			hello:function(){
				alert("呵呵");
			}
		})	
			$.hello();	
// $.fn.extend是用来扩充实例的属性或者方法所用			
		$.fn.extend({
			sayhello:function(){
				alert("呵呵");
			}
		})	
		$("#yellow").sayhello(){
			alert("yellow");
		}
		$.sayhello();

4.jQuery插件开发实例
可以通过而改变颜色

$(function(){
	var defaults={
			head:'green',
			out:'hui',
			over:'blue'
	}
		$.fn.extend({
			//使用retrun的原因是让该实例方法支持链编程,好比Stringbuffer
			bgColor:function(option){
				$.extend(defaults,option);
				//	这里的this指的是插件本身
				return  this.each(function(){
				//this指的是当前元素
				$("tr:eq(0)",this).addClass(defaults.head);
				$("tr:gt(0)",this).addClass(defaults.out);
				
				//添加动态效果
				$("tr:gt(0)",this).hover(function(){
					$(this).removeClass().addClass(defaults.over);
				},function(){
					$(this).removeClass().addClass(defaults.out);
				});
				});
				}
	});
});
<script type="text/javascript">
	$(function () {
		$("table").bgColor({
				head:'blue',
				out:'green',
				over:'green'
		})
	})
</script>

在这里插入图片描述
`第三个 3.ajax

核心代码:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(obj);
int count = md.getColumnCount();
map.put(md.getColumnName(i), rs.getObject(i));
2. jackson将java–>json
2.1 JavaBean/Map

//		json对象
		Student stu=new Student("s001","zhangsan");
		ObjectMapper mapper=new ObjectMapper();
		System.out.println(mapper.writeValueAsString(stu));


2.2 数组/List/Set

//		json数组
		Student stu1=new Student("s002","李四");
		List<Student> list=new ArrayList<>();
		list.add(stu1);
		list.add(stu);
		System.out.println(mapper.writeValueAsString(list));

混合模式

//		json混合g格式
		Map<String,Object> map=new HashMap<>();
		map.put("total", 2);
		map.put("stus",list);
		System.out.println(mapper.writeValueAsString(map));

AJAX的应用
JsonBaseDao

package com.lj.util;

import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSetMetaData;

import javafx.util.Callback;

public class JsonBaseDao extends BaseDao<Map<String, Object>> {
	
	 public final List<Map<String, Object>> executeQuery(String sql,PageBean pageBean ) {
		return super.executeQuery(sql, pageBean, new Callback<Map<String, Object>>(){
			public List<Map<String, Object>> foreach(ResultSet rs) {
				
			   /**
				 * 1、创建一个实体类
				 * 2、给创建的实例属性赋值
				 * 3、将添加完内容的实体添加到list集合中
				 * 
				 */
				List<Map<String, Object>> list = new ArrayList<>();
//				获取原数据
				ResultSetMetaData md = rs.getMetaData();
				int count = md.getColumnCount();
				Map<String, Object> map = null;
				while(rs.next()) {
					map = new HashMap<>();
					for (int i = 1; i <= count; i++) {
						map.put(md.getColumnName(i), rs.getObject(i));
					}
					list.add(map);
				}
				return list;

			}
		});
	}
}

RegionDao

package com.lj.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.lj.util.JsonBaseDao;
import com.lj.util.JsonUtil;
import com.lj.util.PageBean;
import com.lj.util.StringUtils;

public class RegionDao extends JsonBaseDao {

	public List<Map<String, Object>> list(Map<String, String[]> paMap, PageBean pageBean){
		String id = JsonUtil.getParamVal(paMap, "ID");
		String sql = "select * from ch_region where true";
		if(StringUtils.isBlank(id)) {
			sql += " and parent_id=7459";
		}else {
			sql += " and parent_id="+id;
		}
		return super.executeQuery(sql, pageBean);
	}
	
	public static void main(String[] args) {
//		Map<String, String> paMap = new HashMap<>();
		PageBean pageBean = new PageBean();
		Map<String, String[]> paMap = new HashMap<>();
		paMap.put("ID", new String[] {"9504"});
		RegionDao regionDao = new RegionDao();
		
		List<Map<String, Object>> list = regionDao.list(paMap, pageBean);
		System.out.println(list);
	}
}

JsonUtil(专门用来处理Json数据的工具包)

package com.lj.util;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 专门用来处理Jon数据的工具包
 * @author Administrator
 *
 */

public class JsonUtil {
	
	/**
	 * 从paMap拿到咱们所需要用到的查询维度,用于sql语句拼接
	 * @param paMap    获取从jsp页面传递到后台的 参数集合(req.getPaMap)
	 * @param key
	 * @return 
	 */
	public static String getParamVal(Map<String, String[]> paMap,String key) {
		if(paMap != null && paMap.size() > 0) {
			String[] vals = paMap.get(key);
			if(vals != null && vals.length > 0) {
				String val = Arrays.toString(vals);
				return val.substring(1, val.length()-1);
			}
			return "";
		}
		return "";
	}
}

RegionServlet

package com.lj.web;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.lj.dao.RegionDao;
import com.lj.util.ResponseUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mysql.fabric.Response;

public class RegionServlet extends HttpServlet {


	private static final long serialVersionUID = 502710496798533506L;

	private RegionDao regionDao = new RegionDao();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
			List<Map<String, Object>> list = regionDao.list(req.getParameterMap(), null);
			ObjectMapper om = new ObjectMapper();
			try {
				ResponseUtil.write(resp, om.writeValueAsString(list));
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
}

ResponseUtil

package com.lj.util;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

public class ResponseUtil {

	public static void write(HttpServletResponse response,Object o) throws Exception {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println(o.toString());
		out.print(o.toString());
		out.flush();
		out.close();
	}
}

JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.demo10.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
$(function() {
	var ctx = $("#ctx").val();
	$.ajax({
		url:"/regionServlet",
		success:function(data){
			for(index in date){
				//console.log(data[index]);
				$("#province").append("<option value='"+date[index].ID+"'>"+date[index].REGION_NAME+"</option>")
			}
		},
		dataType:"json"
	});
	$("#province").change(function(){
		$("option:gt(0)","#city").remove();
		$.ajax({
		url:"/regionServlet?ID="+this.value,
		success:function(data){
			for(index in date){
				//console.log(data[index]);
				$("#city").append("<option value='"+date[index].ID+"'>"+date[index].REGION_NAME+"</option>")
			}
		},
		dataType:"json"
	  });
  });
	$("#city").change(function(){
		$("option:gt(0)","#county").remove();//清空追加的值
		$.ajax({
			url:"/reg.do?ID="+this.value,//直接的id值
			success:function(data){
				for(index in data){
					$("#county").append("<option value='"+data[index].ID+"'>"+data[index].REGION_ID+"</option>")
				}
			},
			dataType:"json"
		});
	})

})
</script>
</head>
<body>
<div>
    <input type="hidden" id="ctx" value="${pageContext.request.contextPath }">
	<h1>$.ajax实现省市联动</h1>
	<div>
		收货地址&nbsp;&nbsp;
		<select id="province">
			<option selected="selected">---请选择省份---</option>
		</select>&nbsp;&nbsp;
		<select id="city">
			<option selected="selected">---请选择城市---</option>
		</select>&nbsp;&nbsp;
		<select id=" county">
			<option selected="selected">---请选择县区---</option>
		</select>
	</div>
</div>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值