jQuery
来源:互联网 发布:机械力学分析软件 编辑:程序博客网 时间:2024/06/15 13:30
jQuery是什么 John Resig在2006年1月发布的一款跨主流浏览器的JavaScript库,简化JavaScript对HTML操作 参见<<什么是jQuery.JPG>>七)为什么要使用jQuery (1)写少代码,做多事情【write less do more】 (2)免费,开源且轻量级的js库,容量很小 注意:项目中,提倡引用min版的js库 (3)兼容市面上主流浏览器,例如 IE,Firefox,Chrome 注意:jQuery不是将所有JS全部封装,只是有选择的封装 (4)能够处理HTML/JSP/XML、CSS、DOM、事件、实现动画效果,也能提供异步AJAX功能 (5)文档手册很全,很详细 (6)成熟的插件可供选择 (7)提倡对主要的html标签提供一个id属性,但不是必须的 (8)出错后,有一定的提示信息 (9)不用再在html里面通过<script>标签插入一大堆js来调用命令了 八)jQuery开发步骤 (1)引用第三方js库文件,<script type="text/javascript" src="js/jquery-1.8.2.js"></script> (2)查阅并使用api手册,$("#divID").html()/val()/text()/css("color","red")/....//var divElement = document.getElementById("divID");var $div = $("#divID");//var html = divElement.innerHTML;var html = $div.html();alert(html);九)js对象和jQuery对象相互转换 (1)什么是js对象及代码规则 就是使用js-API,即Node接口中的API或是传统JS语法定义的对象,叫做js对象 js代码规则----divElement var divElement = document.getElementById("divID"); var nameArray = new Array(3); (2)什么是jQuery对象及代码规则 就是使用jQuery-API,返回的对象就叫做jQuery对象 jQuery代码规则----$div var $div = $("#divID") 声明:上述代码规则,只是老师个人规则,不代表所有企业都这样做 (3)js对象转成jQuery对象【重点】 语法:$(js对象)---->jQuery对象 例如:$(divElement)---->$div 例如:$(this)---->$this 注意:jQuery对象将js对象做了封装,js对象二边无引号var inputElement = document.getElementById("inputID");//js对象 var $input = $(inputElement);//jquery对象var txt = $input.val();alert(txt); (4)jQuery对象转成js对象 语法1:jQuery对象[下标,从0开始] 语法2:jQuery对象.get(下标,从0开始) 例如:$div[0]---->divElement 注意:不同的对象只能调用对应的api方法,即jQuery对象不能调用js对象的api,反之亦然 $div.innerHTML(错) divElement.html(错) var $div = $("#divID");//jquery对象var divElement = $div[0];//js对象(方式一)//var divElement = $div.get(0);//js对象(方式二)var txt = divElement.innerHTML; alert(txt);十)js对象和jQuery对象的区别 (1)js对象的三种基本定位方式 (A)通过ID属性:document.getElementById() (B)通过NAME属性:document.getElementsByName() (C)通过标签名:document.getElementsByTagName() (2)jQuery对象的三种基本定位方式 (A)通过ID属性:$("#id属性值") (B)通过标签名:$("标签名") (C)通过CLASS属性:$(".样式名") (3)js对象出错的显示 没有合理的提示信息 例如:alert(document.getElementById("usernameIDD").value) (4)jQuery对象出错的显示 有合理的提示信息,例如:undefined 例如:alert($("#usernameIDD").val())十一)jQuery九类选择器(上)【参见jQueryAPI.chm手册】 目的:通过选择器,能定位web页面(HTML/JSP/XML)中的任何标签(1)基本选择器【参见selector_1.html】 //1)查找ID为"div1ID"的元素个数 alert( $("#div1ID").size() ); //2)查找DIV元素的个数 alert( $("div").size() ); //3)查找所有样式是"myClass"的元素的个数 alert( $(".myClass").size() ); //4)查找所有DIV,SPAN,P元素的个数 alert( $("div,span,p").size() ); //5)查找所有ID为div1ID,CLASS为myClass,P元素的个数 alert( $('#div1ID,.myClass,p').size() );(2)层次选择器【参见selector_2.html】//1)找到表单form里所有的input元素的个数 alert( $("form input").size() ); //2)找到表单form里所有的子级input元素个数 alert( $("form > input").size() ); //3)找到表单form同级第一个input元素的value属性值 alert( $("form + input").val() ); //4)找到所有与表单form同级的input元素个数 alert( $("form ~ input").size() );(3)增强基本选择器【参见selector_3.html】//1)查找UL中第一个元素的内容alert( $("ul li:first").text() ); //2)查找UL中最后个元素的内容alert( $("ul li:last").text() ); //4)查找表格的索引号为1、3、5...奇数行个数,索引号从0开始alert( $("table tr:odd").size() ); //5)查找表格的索引号为2、4、6...偶数行个数,索引号从0开始alert( $("table tr:even").size() ); //6)查找表格中第二行的内容,从索引号0开始,这是一种祖先 后代 的变化形式 alert( $("table tr td:eq(1)").text() ); //7)查找表格中第二第三行的个数,即索引值是1和2,也就是比0大alert( $("table tr:gt(0)").size() ); //8)查找表格中第一第二行的个数,即索引值是0和1,也就是比2小alert( $("table tr:lt(2)").size() ); //9)给页面内所有标题<h1><h2><h3>加上红色背景色,且文字加蓝色$(":header").css("background-color","red").css("color","blue"); //3)查找所有未选中的input为checkbox的元素个数alert( $(":checkbox:NOT(:checked)").size() );(4)内容选择器【参见selector_4.html】//1)查找所有包含文本"John"的div元素的个数 alert( $("div:contains('John')").size() ); //2)查找所有p元素为空的元素个数 alert( $("p:empty").size() ); //3)给所有包含p元素的div元素添加一个myClass样式 $("div:has(p)").addClass("myClass"); //4)查找所有含有子元素或者文本的p元素个数,即p为父元素 alert( $("p:parent").size() ); 。。。十二)jQuery中常用方法(上) 目的:通过方法,能操作web页面(HTML/JSP)中的任何标签 (1)val():获取标签的value属性值,前提是该标签有value属性 (2)html():获取标签之间的内容,不能用运于xml文件 (3)text():获取标签之间的内容,可以用运于html/jsp和xml文件,(提倡) (4)css():加key-value形成的css样式 (5)addClass():加已经定义好的一个css样式 (6)size():获取jQuery对象/数组中元素的个数,提倡 (7)length:获取jQuery对象/数组中元素的个数 注意:在写jQuery代码时,不光可以使用jQuery的API,还能使用传统JS的API1)掌握jQuery九类选择器及应用2)掌握jQuery常用Method-API3)掌握jQuery常用Event-API一)jQuery九类选择器【参见jQueryAPI.chm手册】 目的:通过九类选择器,能定位web页面(HTML/JSP/XML)中的任何标签 (1)基本选择器【参见01_selector.html】 (2)层次选择器【参见02_selector.html】 (3)增强基本选择器【参见03_selector.html】 (4)内容选择器【参见04_selector.html】 (5)可见性选择器【参见05_selector.html】 (6)属性选择器【参见06_selector.html】 (7)子元素选择器【参见07_selector.html】 (8)表单选择器【参见08_selector.html】 (9)表单对象属性选择器【参见09_selector.html】 注意:项目中,通常是多种选择器一起使用二)jQuery常用Method-API 目的:对web页面(HTML/JSP/XML)中的任何标签,属性,内容进行增删改查 (1)DOM简述与分类 (A)DOM是一种W3C官方标准规则,可访问任何标签语言的页面(HTML/JSP/XML) (B)DOM是跨平台(window/linux/unix),跨语言(javascript/java),跨浏览器(ie/firefox/Chrome)的标准规则 (C)我们只需要按照DOM标准规则,针对主流浏览器(ie/firefox/Chrome)编程 (D)JS/jQuery按照DOM的标准规则,既可以操作HTML/JSP,也能操作CSS (E)DOM标准规则不是JS的专属,其它语言,也能适用,例如:VBScript,Java语言等 (2)DOM标准规则下的jQuery常用API,注意:以下方法均由jQuery对象调用 each():是jQuery中专用于迭代数组的方法,参数为一个处理函数,this表示当前需要迭代的js对象 append():追加到父元素之后 prepend():追加到父元素之前after():追加到兄弟元素之后 before():追加到兄弟元素之前 attr(name):获取属性值 attr(name,value):给符合条件的标签添加key-value属性对 $("<div id='xxID'>HTML代码</div>"):创建元素,属性,文本 remove():删除自已及其后代节点 val():获取value属性的值 val(""):设置value属性值为""空串,相当于清空 text():获取HTML或XML标签之间的值 text(""):设置HTML或XML标签之间的值为""空串 clone():只复制样式,不复制行为 clone(true):既复制样式,又复制行为replaceWith():替代原来的节点 removeAttr():删除已存在的属性addClass():增加已存在的样式 removeClass():删除已存在的样式 hasClass():判断标签是否有指定的样式,true表示有样式,false表示无样式 toggleClass():如果标签有样式就删除,否则增加样式offset():获取对象的left和top坐标 offset({top:100,left:200}):将对象直接定位到指定的left和top坐标width():获取对象的宽 width(300):设置对象的宽 height():获取对象的高 height(500):设置对象的高children():只查询子节点,不含后代节点 next():下一下兄弟节点 prev():上一下兄弟节点 siblings():上下兄弟节点show():显示对象 hide():隐藏对象fadeIn():淡入显示对象 fadeOut():淡出隐藏对象slideUp():向上滑动 slideDown():向下滑动 slideToggle():上下切换滑动,速度快点面试题--find("9类选择器"):查询指定的节点和多重each()迭代 //使用jquery弹出奇数的tr标签下的td里的值var $tr = $("table tr:lt(4):even");$tr.each(function(){//tr中查找td标签,$(this)表示trvar $td = $(this).find("td");$td.each(function(){ //$(this)表示td var txt = $(this).text();alert(txt);});});三)jQuery常用Event-API 目的:对web页面(HTML/JSP)进行事件触发,完成特殊效果的处理 window.onload:在浏览器加载web页面时触发,可以写多次onload事件,但后者覆盖前者 ready:在浏览器加载web页面时触发,可以写多次ready事件,不会后者覆盖前者,依次从上向下执行,我们常用$(函数)简化 ready和onload同时存在时,二者都会触发执行,ready快于onload change:当内容改变时触发 focus:焦点获取 select:选中所有的文本值 keyup/keydown/keypress:演示在IE和Firefox中获取event对象的不同 mousemove:在指定区域中不断移动触发 mouseover:鼠标移入时触发 mouseout:鼠标移出时触发 submit:在提交表单时触发,true表示提交到后台,false表示不提交到后台 click:单击触发 dblclick:双击触发 blur:焦点失去
1)掌握jQuery常用AJAX-API2)掌握Java调用MySQL / Oracle过程与函数一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取得服务端当前时间 简单形式:jQuery对象.load(url) 返回结果自动添加到jQuery对象代表的标签中间 如果是Servlet的话,采用的是GET方式 复杂形式:jQuery对象.load(url,sendData,function(backData,textStatus,ajax){... ...}) sendData = {"user.name":"jack","user.pass":"123"}; 以JSON格式文本方式发送,使用POST方式发送,服务端能收到数据 注意:对于load方法而言,如果请求体无参数发送的话,load方法采用GET方式提交 注意:对于load方法而言,如果请求体有参数发送的话,load方法采用POST方式提交注意:使用load方法时,自动进行编码,无需手工编码<script type="text/javascript">$(":button").click(function(){var url = "${pageContext.request.contextPath}/loadTimeRequest?time"+new Date().getTime();var sendData = null;$.load(url,sendData,function(a,b,ajax){var jsonJAVA = ajax.responseText;var jsonJS = eval("("+jsonJAVA+")");var strTime = jsonJS.strTime;$("span:first").html(strTime).css("color","red");$("span:last").html(strTime).css("color","blue");});//$("span").load(url);});</script> load()方法参数解释: 参数一:url发送到哪里去 参数二: sendData发送请求体中的数据,符合JSON格式,例如:{key:value,key:value} 参数三:function处理函数,类似于传统方式ajax.onreadystatechange = 处理函数 其中参数三为function处理函数最多可以接收三个参数,含义如下第一个参数:服务端返回的数据,例如:backData第二个参数:服务端状态码的文本描述,例如:success、error、第三个参数:ajax异步对象,即XMLHttpRequest对象 以上所有参数的名字可以任意,但必须按顺序书写,尽量做到见名知意 (2)检查注册用户名和密码是否存在 $.get(url,sendData,function(backData,textStatus,ajax){... ...}) $.post(url,sendData,function(backData,textStatus,ajax){... ...})赵君提倡 注意:使用get或post方法时,自动进行编码,无需手工编码 (3)jQuery对象.serialize() 作用:自动生成JSON格式的文本 注意:为每个jQuery对象设置一个name属性,因为name属性会被认为请求参数名 注意:必须用<form>标签元素 适用:如果属性过多,强烈推荐采用这个API <script type="text/javascript">//定位按钮,同时添加单击事件$(":button").click(function(){//获取用户名和密码var username = $(":text:first").val();var password = $(":text:last").val();//去空格username = $.trim(username);password = $.trim(password);//异步发送到服务端var url = "${pageContext.request.contextPath}/checkRequest?time="+new Date().getTime();/*手工书写JSON文本var sendData = {"user.username":username,"user.password":password};*//*工具生成JSON文本*/var sendData = $("form").serialize();$.post(url,sendData,function(backData,textStatus,ajax){//backData是一个JSON文本/对象,你得通过.号访问其属性值var tip = backData.tip;//创建img节点var $img = $("<img src='" + tip + "' height='18px' widht='18px'/>")//清空span节点中的内容$("span").text("");//将img节点添加到span节点中$("span").append( $img );});});</script> public class RegisterAction extends ActionSupport{private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}/** * 检查注册用户名和密码是否存在 */public String checkMethod() throws Exception {tip = "images/MsgSent.gif";if("帅帅".equals(user.getUsername()) && "123".equals(user.getPassword())){tip = "images/MsgError.gif";}return "ok";}private String tip;public String getTip() {return tip;}/** * var backData = { * "tip":"images/MsgError.gif" * } */} (4)jQuery解析XML <?xml version="1.0" encoding="UTF-8"?><root><city>广州</city><city>中山</city><city>深圳</city><city>佛山</city><city>珠海</city></root> <script type="text/javascript">$(":button").click(function(){var url = "${pageContext.request.contextPath}/03_city.xml";var sendData = null;$.get(url,sendData,function(backData,textStatus,ajax){/*//将xml文件转成jquery对象,目的是用jquery api解析xml文件var $xml = $(backData);var $city = $xml.find("city");$city.each(function(){//获取每一个city节点var city = $(this).text();alert(city);});*/var xml = ajax.responseXML;var $xml = $(xml);var $city = $xml.find("city");$city.each(function(){//获取每一个city节点var city = $(this).text();alert(city);});});});</script> (5)省份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】 $.ajax( { type:"POST", url:"${pageContext.request.contextPath}/findCityByProvinceRequest?id="+new Date().getTime(), data:{"province":province}, success:function(backData,textStatus,ajax){} } ); 注意:这里每个key值不能乱写 <select id="province"><option>选择省份</option><option>广东</option><option>湖南</option></select><select id="city"><option>选择城市</option></select> <script type="text/javascript">$("#province").change(function(){//删除原城市下拉框中的内容,除第一项外$("#city option:gt(0)").remove();var province = $("#province option:selected").text();if("选择省份" != province){$.ajax({"type":"POST","url":"${pageContext.request.contextPath}/findCityByProvince?time="+new Date().getTime(),"sendData":{"province":province},"success":function(backData,textStatus,ajax){//js对象var city = backData.cityList;//jquery对象var $city = $(city);//each()$city.each(function(){//this表示每个城市var $option = $("<option>" + this + "</option>");$("#city").append( $option );});}});}});</script> public class ProvinceCityAction extends ActionSupport{private String province;//广东public void setProvince(String province) {this.province = province;}public String findCityByProvince() throws Exception {cityList = new ArrayList<String>();if("广东".equals(province)){cityList.add("湛江");cityList.add("汕头");}else if("湖南".equals(province)){cityList.add("邵阳");cityList.add("浏阳");}return "ok";}private List<String> cityList;public List<String> getCityList() {return cityList;}/** * var backData = { * "cityList":["邵阳","浏阳"] * } */} <struts> <package name="timePackage" extends="json-default" namespace="/"> <global-results> <result name="ok" type="json"/> </global-results><!-- 获取服务端时间 --> <action name="loadTimeRequest" class="cn.itcast.javaee.js.time.TimeAction" method="loadTimeMethod"/><!-- 检查用户名和密码是否存在 --> <action name="checkRequest" class="cn.itcast.javaee.js.register.RegisterAction" method="checkMethod"/> <!-- 根据省份查询城市 --> <action name="findCityByProvince" class="cn.itcast.javaee.js.provincecity.ProvinceCityAction" method="findCityByProvince"/> </package></struts>
二)掌握Java调用Oracle过程与函数 写一个计算个人所得税的应用
--定义过程create or replace procedure get_rax(salary in number,rax out number)as --需要交税的钱 bal number;begin bal := salary - 3500; if bal<=1500 then rax := bal * 0.03 - 0; elsif bal<=4500 then rax := bal * 0.1 - 105; elsif bal<=9000 then rax := bal * 0.2 - 555; elsif bal<=35000 then rax := bal * 0.25 - 1005; elsif bal<=55000 then rax := bal * 0.3 - 2755; elsif bal<=80000 then rax := bal * 0.35 - 5505; else rax := bal * 0.45 - 13505; end if;end;/--调用过程declare --交税 rax number; salary number := &salary;begin get_rax(salary,rax); dbms_output.put_line(salary||'元工资需要交'||rax||'元税');end;/ public class TestCallOracleProc {public static void main(String[] args) throws Exception{String sql = "{call get_rax(?,?)}";Connection conn = JdbcUtil.getConnection();CallableStatement cstmt = conn.prepareCall(sql);cstmt.setInt(1,10000);cstmt.registerOutParameter(2,Types.INTEGER);cstmt.execute();Integer rax = cstmt.getInt(2);System.out.println("10000元需要交" + rax + "元税");JdbcUtil.close(cstmt);JdbcUtil.close(conn);}} 查询7788号员工的的姓名,职位,月薪--定义函数create or replace function findEmpNameAndJobAndSal(pempno in number,pjob out varchar2,psal out number) return varchar2as pename emp.ename%type;begin select ename,job,sal into pename,pjob,psal from emp where empno = pempno; return pename;end;/--调用函数declare pename emp.ename%type; pjob emp.job%type; psal emp.sal%type;begin pename := findEmpNameAndJobAndSal(7788,pjob,psal); dbms_output.put_line('7788'||'--'||pename||'--'||pjob||'--'||psal);end;/ public class TestCallOracleFunc {public static void main(String[] args) throws Exception{String sql = "{?=call findEmpNameAndJobAndSal(?,?,?)}";Connection conn = JdbcUtil.getConnection();CallableStatement cstmt = conn.prepareCall(sql);cstmt.registerOutParameter(1,Types.VARCHAR);cstmt.setInt(2,7788);cstmt.registerOutParameter(3,Types.VARCHAR);cstmt.registerOutParameter(4,Types.INTEGER);cstmt.execute();String ename = cstmt.getString(1);String job = cstmt.getString(3);Integer sal = cstmt.getInt(4);System.out.println(ename+":"+job+":"+sal);JdbcUtil.close(cstmt);JdbcUtil.close(conn);}}
阅读全文
0 0
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQuery
- JQUERY
- jquery
- jQuery
- jquery
- jquery
- html,css,js加载顺序
- 长牌游戏开发--搭建系统环境
- 内存对齐分配策略(含位域模式)
- SpringBoot 在启动时运行代码
- JavaScript学习笔记(第一天)
- jQuery
- iptables
- vs2010下MFC按钮打开文件夹并遍历下面所有文件
- Android深入理解Context(一)Context关联类和Application Context创建过程
- 【CSS定位position】
- Kotlin基础教程-类与继承
- ★★51nod 1574 排列转换 (贪心思维题)
- Java 数据库系列教程--C3P0详解
- 秘制红烧肉,养生哈尔巴肉