初始jQuery
什么是jQuery?
jQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率。它是一个轻量级的javascript类库
注意:就一个类“jQuery”,简写“$”
jQuery优点:
1.总是面向集合
2.多行操作集于一行
jquery的导入
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
jquery的程序入口
有三个程序入口
$(function () { alert("hooll,早上好"); })
$(document).ready(function () { alert("hooll,中午好"); })
window.onload =function(){ alert("hooll,晚上好"); }
接下来我们说一下 (fn)、(fn)、(fn)、(document).ready(fn)与window.onload的区别?
结论就是: (fn)、(fn) 、(fn)、(document).ready(fn)这两个是平等的,哪个代码在前面就那个先执行
jsp的dom树结构加载完毕即可调用方法
window.onload最后执行
jsp的dom树加载完毕,css,js等静态资源加载完毕执行
jQuery三种工厂方法;
(1) 第一种工厂方法
通过选择器来创建jQuery实例,然后去调用click方法
(2)第二种工厂方法
我们可以把html串转换为Jquery的实例
(3)第三种工厂方法就是:Jquery里面放js对象就可以了
jquery的简单选择器
第一种标签选择器
利用a标签获取jquery实例
$(function () { /*第一种标签选择器 */ /*利用a标签获取jquery实例 */ $("a").click(function () { alert("刘霞被翻牌子了"); }) ; })
第二种 id选择器
利用id=a3获取jquery实例
/*第二种 id选择器 */ /*利用id=a3获取jquery实例 */ $("#a3").click(function () { alert("曹广利被翻牌子了"); });
第三种类选择器
/* 第三 类选择器 */ $(".c1").click(function () { alert("小二被翻牌子了"); });
第四种 包含选择器
$("p a").click(function () { alert("小四被翻牌子了"); });
第五种 组合选择器
$("a,span").click(function () { alert("小五被翻牌子了"); });
给一个按钮添加一个点击事件,事件为:给它下拉框增加一个值
<%@ 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="jquery-easyui-1.5.1/jquery.min.js"></script> <title>Insert title here</title> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script><script type="text/javascript"> /** * 第二种工厂方法 我们可以把html串转换为Jquery的实例 */ $(function () { /*自定义选择器 */ //找到input标签,然后筛选出name=1的 $(":input[name='name1']").click(function() { //在id=selId1的select的Jquery实例追加,<option value='1'>湖南省</option>的html Jquery实例 $("#selId1").append("<option value='1'>湖南省</option>") }); $(":input[name='name2']").click(function() { //<option value='1'>长沙市</option>的HTML Jquery实例追加到ID=selId2的select标签Jquery实例中 $("<option value='1'>长沙市</option>").appendTo("#selId2") }); }) </script> </head> <body> <select id="selId1"> <option value="-1">---请选择---</option> </select> <select id="selId2"> <option value="-1">---请选择---</option> </select> <input name="name1" value="add1" type="button"> <input name="name2" value="add2" type="button"> <input type="hidden" id="h1" value="h1"> <input type="hidden" id="h2" value="h2"> <input type="hidden" id="h3" value="h3">
结果如下:
首先他们都没有值
接下来我们添加两个值
add1是添加一个省,aad2添加一个市,这些值自己定义
接下来我们看一下效果:
jquery与Js的转换
Jquery对象转js对象
//获取Jquery对象 var $h1=$("#h1"); alert($h1.val()); //Jquery对象 转js对象 //var h1Node=$h1.get(0);//把看成集合 var h1Node=$h1[0];//还可以看成数组 alert(h1Node.value);
js对象转换成Jquery对象
var h2Node= document.getElementById("h2"); alert(h2Node.value); //js对象转换成Jquery对象 //这里我们要用到第三种工厂方法 //第三种工厂方法就是:Jquery里面放js对象就可以了: jQuery(element) // element:js对象,表示一个html元素对象 var $h2Node=$(h2Node); alert(h2Node.val());
jquery插件
json的三种格式:
第一种 json对象的字符串体现形式
var jsonObj1={ sid:'s001', sname:'zhangsan' }; //用控制台去调试 console(jsonobj1);
第二种 json数组的字符串体现形式
var jsonArray=[1,2,3,4] console.log(jsonArray);
第三种 json混合模式的字符串体现形式
var jsons={id:3,hobby:['a','b','c']}; console.log(jsons);
extend的扩充
$.extend:是用来扩充jqyery类属性或者方法所用
下面的代码我都打了注释,方便理解:
var jsonObj2={}; //用后面的对象扩充第一个对象 //$.extend(jsonObj2,jsonObj1); //讲解扩充值覆盖的问题,之前已经扩充的属性值会被后面的对象所覆盖,如果后面对象有新的属性会继续扩充 //它还支持多个 $.extend(jsonObj2,jsonObj1,jsonObj3); console.log(jsonObj2);
扩充方法
$.extend({ hello:function(){ alert('刘霞带着钱向我走来了'); } }); $.hello();
$.fn.extend 是用来扩充jqyery的实例属性或者方法所用
$.fn.extend({ sayHello:function(){ alert('走吧'); } }); $("#yellow").sayHello(); alert("yellow"); })
extend的实列
$(function() { // 原生态写法 //给默认值 $("table[id='t1'] tr:eq(0)").addClass('green'); $("table[id='t1'] tr:gt(0)").addClass('blue'); //添加动态效果 $("table[id='t1'] tr:gt(0)").hover(function(){ $(this).removeClass().addClass('yello'); },function(){ $(this).removeClass().addClass('blue'); }); //给默认值 $("table[id='t2'] tr:eq(0)").addClass('fen'); $("table[id='t2'] tr:gt(0)").addClass('hui'); //添加动态效果 $("table[id='t2'] tr:gt(0)").hover(function(){ $(this).removeClass().addClass('red'); },function(){ $(this).removeClass().addClass('hui'); }); })
ajax的转换
利用jQuery的ajax做一个省市县三级联动
Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象
和xml文档,同样也可以将json、xml转换成Java对象
思路:利用map集合存储数据,然后利用把数据以json格式传入前台,然后jsp页面利用ajax接收,转译Json格式,然后给市和县添加change事件。
JsonBaseDao
我们写JsonBaseDao的好处就是不要建实体类,他操作的是Map集合,它支持多表连查
public List<Map<String, Object>> executeQuery(String sql, PageBean pageBean) { return super.executeQuery(sql, pageBean, new Callbac<Map<String, Object>>() { public List<Map<String, Object>> foreach(ResultSet rs) { 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
public List<Map<String, Object>> list(Map<String, String[]> paramMap,PageBean pageBean){ String id = JsonUtils.getParamVal(paramMap, "ID"); String sql="select * from ch_region where 1=1"; if(StringUtils.isBlank(id)) { sql+=" and parent_id=7459"; } else { sql+=" and parent_id="+id; } return super.executeQuery(sql, pageBean); }
RegionServlet
public class RegionServlet extends HttpServlet { private static final long serialVersionUID = 6826185684173095882L; 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 { resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); List<Map<String, Object>> list = regionDao.list(req.getParameterMap(), null); ObjectMapper om=new ObjectMapper(); out.println(om.writeValueAsString(list).toString()); out.flush(); out.close(); } }
jsp页面
<title>ajax实现省市县三级联动</title> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> $(function(){ $.ajax({ url:"/reg.do", success:function(data){ for(index in data){ //把数据追加到后面 $("#province").append("<option value='"+data[index].ID+"'>"+data[index].REGION_ID+"</option>") } }, dataType:"json" }); $("#province").change(function(){ $("option:gt(0)","#city").remove();//清空追加的值 $.ajax({ url:"/reg.do?ID="+this.value,//直接的id值 success:function(data){ for(index in data){ $("#city").append("<option value='"+data[index].ID+"'>"+data[index].REGION_ID+"</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> 地址: <select id="province"> <option selected="selected">---请选择省份---</option> </select> <select id="city"> <option sel 1bb8c ected="selected">---请选择城市---</option> </select> <select id="county"> <option selected="selected">---请选择县区---</option> </select> </body>
- Jquery初始--遍历
- 使用jQuery快速高效制作网页交互特效 第五章初始jQuery
- jQuery 学习笔记1_初始 jQuery
- jquery给input赋初始值,聚焦时清空
- jquery select2插件初始化时赋多个值
- 初始jQuery
- jQuery实现点击旋转,再点击恢复初始状态动画效果示例
- jquery 中给combobox赋初始值
- jquery源码学习-初始(1)
- jquery multiselect 赋初始值
- jquery 初始页面时 隐藏div样式
- 用JQuery写的文本框初始值消失的方法
- 初始jquery
- JQuery 第三章 初始JQuery 上机+课后
- S2-JavaScript-05-初始JQuery
- JQuery高效制作网页特效第五章初始jQuery课后作业
- 解决 jquery dialog 弹框destroy销毁方法不能把弹出元素设置成初始状态
- 解决 jquery dialog 弹框destroy销毁方法不能把弹出元素设置成初始状态
- Jquery初始--安装下载
- jquery 实现点击 table中一行tr自动复制本行添加到本行之后 点击按钮回复到初始状态