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>
收货地址
<select id="province">
<option selected="selected">---请选择省份---</option>
</select>
<select id="city">
<option selected="selected">---请选择城市---</option>
</select>
<select id=" county">
<option selected="selected">---请选择县区---</option>
</select>
</div>
</div>
</body>
</html>