jQuery.pdf
北京动力节点-王鹤-AJAX-jQuery.pdf

一、jQuery基本概述

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script type="text/javascript">
  7. //自定义方法, 获取js中的dom对象 , $ 是一个函数的名称
  8. function $( domId){
  9. var obj = document.getElementById(domId);
  10. return obj
  11. }
  12. //单击按钮获取 文本框的 value值
  13. function fun1(){
  14. // 通过js中的 id 获取dom对象
  15. //var obj = document.getElementById("txt1");
  16. var obj = $("txt1");
  17. alert(obj.value);
  18. }
  19. function fun2(){
  20. // 通过js中的 id 获取dom对象
  21. //var obj = document.getElementById("txt2");
  22. var obj =$("txt2");
  23. alert(obj.value);
  24. }
  25. </script>
  26. </head>
  27. <body>
  28. <input type="text" id="txt1" value="我是txt1" /> <br/>
  29. <input type="text" id="txt2" value="我是txt2" /> <br/>
  30. <input type="button" value="单击按钮 1 " onclick="fun1()" /> <br/>
  31. <input type="button" value="单击按钮 2 " onclick="fun2()" />
  32. </body>
  33. </html>

1. jQuery是js库

库:相当于java的工具类,库是存放东西的, jQuery是存放js代码的地方, 放的用js代码写的function

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>第一个例子</title>
  6. <!-- 指定jquery的库文件位置, 使用相对路径,当前项目的js目录下的指定文件 -->
  7. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  8. <script type="text/javascript">
  9. /*
  10. 1. $(document) , $是jQuery中的函数名称, document是函数的参数
  11. 作用是 document对象变成 jQuery函数库可以使用的对象。
  12. 2. ready:是jQuery中的函数, 是准备的意思, 当页面的dom对象加载成功后
  13. 会执行ready函数的内容。 ready 相当于js中的onLoad事件
  14. 3. function()自定义的表示onLoad后要执行的功能。
  15. */
  16. /* $(document).ready(function(){
  17. //自定义的功能代码
  18. alert("Hello jQuery")
  19. }) */
  20. $( function(){
  21. //代码内容
  22. alert("Hello JQuery 快捷方式")
  23. }
  24. )
  25. </script>
  26. </head>
  27. <body>
  28. </body>
  29. </html>

2. dom对象和jquery对象

dom对象,使用javascript的语法创建的对象叫做dom对象, 也就是js对象。
var obj= document.getElementById(“txt1”); obj是dom对象,也叫做js对象
obj.value;
jquery对象: 使用jquery语法表示对象叫做jquery对象, 注意:jquery表示的对象都是数组。
例如 var jobj = $(“#txt1”) , jobj就是使用jquery语法表示的对象。 也就是jquery对象。 它是一个数组。
现在数组中就一个值。

3. dom对象可以和jquery对象相互的转换

  1. dom对象可以转为jquery 语法: $(dom对象)<br /> jquery对象也可以转为dom对象, 语法: 从数组中获取第一个对象, 第一个对象就是dom对象, 使用[0]或者get{0).<br /> 为什么要进行domjquery的转换:目的是要使用对象的方法,或者方法。<br /> 当你的dom对象时,可以使用dom对象的属性或者方法, 如果你要想使用jquery提供的函数,必须是jquery对象才可以。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>dom对象转为jquery</title>
  6. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  7. <script type="text/javascript">
  8. function btnClick(){
  9. //获取dom对象
  10. var obj = document.getElementById("btn");
  11. //使用dom的value属性,获取值
  12. alert("使用dom对象的属性="+obj.value)
  13. //把dom对象转jquery,使用jquery库中的函数
  14. var jobj = $(obj);
  15. //调用jquery中的函数,获取value的值
  16. alert( jobj.val() )
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <input type="button" id="btn" value="==我是按钮==" onclick="btnClick()" />
  22. </body>
  23. </html>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  6. <script type="text/javascript">
  7. function btnClick(){
  8. //使用jquery的语法,获取页面中的dom对象
  9. //var obj = $("#txt")[0]; // 从数组中获取下标是0的dom对象
  10. var obj = $("#txt").get(0);//从数组中获取下标是0的dom对象
  11. //alert( obj.value)
  12. var num = obj.value;
  13. obj.value = num * num;
  14. }
  15. </script>
  16. </head>
  17. <body>
  18. <div>
  19. <input type="button" value="计算平方" onclick="btnClick()" /><br/>
  20. <input type="text" id="txt" value="整数" />
  21. </div>
  22. </body>
  23. </html>

二、常用的选择器:

  • 选择器: 就是一个字符串, 用来定位dom对象的。定位了dom对象,就可以通过jquery的函数操作dom

1、基本选择器
1) id选择器, 语法: $(“#dom对象的id值”)
通过dom对象的id定位dom对象的。 通过id找对象, id在当前页面中是唯一值。
2) class选择器, 语法: $(“.class样式名)
class表示css中的样式, 使用样式的名称定位dom对象的。
3) 标签选择器, 语法: $(“标签名称”)
使用标签名称定位dom对象的

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: gray;
  8. width: 200px;
  9. height: 100px;
  10. }
  11. .two{
  12. background: gold;
  13. font-size: 20pt;
  14. }
  15. </style>
  16. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  17. <script type="text/javascript">
  18. function fun1(){
  19. //id选择器
  20. var obj = $("#one");
  21. //使用jquery中改变样式的函数
  22. obj.css("background","red");
  23. }
  24. function fun2(){
  25. //使用样式选择器
  26. var obj = $(".two");
  27. obj.css("background","yellow");
  28. }
  29. function fun3(){
  30. //标签选择器
  31. var obj = $("div"); //数组有3个对象
  32. //jquery的操作都是操作数组中的全部成员.
  33. //所以是给所有的div都设置的背景色
  34. obj.css("background","blue");
  35. }
  36. function fun4(){
  37. var obj = $("*");
  38. obj.css("background","green");
  39. }
  40. function fun5(){
  41. var obj = $("#one,span");
  42. //obj.css("background","red");
  43. //obj是一个数组, 有两个成员, 1 是span dom对象
  44. //$( obj[1] ) : jquery对象
  45. // $( dom 对象) : 是把dom对象转为jquery对象, 之后就可以调用jquery的css函数了
  46. $( obj[1] ).css("background","green");//就是span
  47. }
  48. document.getElementById("one"); //js的语法规则 ,value
  49. $("#one"); //jquery语法
  50. </script>
  51. </head>
  52. <body>
  53. <div id="one">我是one的div</div><br/>
  54. <div class="two">我是样式是two的div</div>
  55. <br/>
  56. <div>我是没有id,class的div</div>
  57. <br/>
  58. <span class="two">我是span标签</span>
  59. <br/>
  60. <input type="button" value="获取id是one的dom对象" onclick="fun1()" />
  61. <br/>
  62. <input type="button" value="使用class样式获取dom对象" onclick="fun2()" />
  63. <br/>
  64. <input type="button" value="使用标签选择器" onclick="fun3()" />
  65. <br/>
  66. <input type="button" value="所有选择器" onclick="fun4()"/>
  67. <br/>
  68. <input type="button" value="组合选择器" onclick="fun5()"/>
  69. </body>
  70. </html>

2、表单选择器
使用标签的type属性值,定位dom对象的方式。
语法: $(“:type属性值”)
例如: $(“:text”) ,选择的是所有的单行文本框,
$(“:button”) ,选择的是所有的按钮。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. </style>
  7. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  8. <script type="text/javascript">
  9. function fun1(){
  10. //使用表单选择器 $(":type的值")
  11. var obj = $(":text");
  12. //获取value属性的值 val()是jquery中的函数, 读取value属性值
  13. alert( obj.val());
  14. }
  15. function fun2() {
  16. //定位radio
  17. var obj = $(":radio");//数组,目前是两个对象 man ,woman
  18. //循环数组,数组中的成员是 dom对象,可以dom的属性或者函数
  19. for(var i=0;i<obj.length;i++){
  20. //从数组值获取成员,使用下标的方式
  21. var dom = obj[i];
  22. //使用dom对象的属性,获取value值
  23. alert(dom.value)
  24. }
  25. }
  26. function fun3(){
  27. //定位checkbox
  28. var obj = $(":checkbox"); //数组,有三个对象
  29. for(var i=0;i<obj.length;i++){
  30. var dom = obj[i];
  31. //alert(dom.value);
  32. //使用jqueyr的val函数, 获取value的值
  33. //1. 需要jquery对象
  34. var jObj = $(dom); // jObj 是jquery对象
  35. //2. 调用jquery函数
  36. alert("jquery的函数调用=" + jObj.val());
  37. }
  38. }
  39. </script>
  40. </head>
  41. <body>
  42. <input type="text" value="我是type=text" /><br/>
  43. <br/>
  44. <input type="radio" value="man" /><br/>
  45. <input type="radio" value="woman" /><br/>
  46. <br/>
  47. <input type="checkbox" value="bike" /> 骑行 <br/>
  48. <input type="checkbox" value="football" /> 足球 <br/>
  49. <input type="checkbox" value="music" /> 音乐 <br/>
  50. <br/>
  51. <input type="button" value="读取text的值" onclick="fun1()"/>
  52. <br/>
  53. <input type="button" value="读取radio的值" onclick="fun2()"/>
  54. <br/>
  55. <input type="button" value="读取checkbox的值" onclick="fun3()"/>
  56. </body>
  57. </html>

三、过滤器

1、基本过滤器
过滤器:在定位了dom对象后,根据一些条件筛选dom对象。
过滤器有是一个字符串,用来筛选dom对象的。
过滤器不能单独使用, 必须和选择器一起使用。
1)$(“选择器:first”) : 第一个dom对象
2)$(“选择器:last”): 数组中的最后一个dom对象
3)$(“选择器:eq(数组的下标)”) :获取指定下标的dom对象
4)$(“选择器:lt(下标)”) : 获取小于下标的所有dom对象
5)$(“选择器:gt(下标)”) : 获取大于下标的所有dom对象

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: gray;
  8. }
  9. </style>
  10. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  11. <script type="text/javascript">
  12. // $(document).ready( 函数 ): 当页面中的dom对象加载成功后,会执行ready(),
  13. // 相当于是onLoad().
  14. $(function() {
  15. //当页面dom对象加载后,给对象绑定事件,因为此时button对象已经在内存中创建好了.才能使用.
  16. $("#btn1").click(function(){
  17. //过滤器
  18. var obj = $("div:first");
  19. obj.css("background","red");
  20. })
  21. //绑定事件
  22. $("#btn2").click(function(){
  23. var obj = $("div:last");
  24. obj.css("background","green");
  25. })
  26. //绑定btn3的事件
  27. $("#btn3").click(function(){
  28. var obj = $("div:eq(3)");
  29. obj.css("background","blue");
  30. })
  31. $("#btn4").click(function(){
  32. var obj = $("div:lt(3)");
  33. obj.css("background","orange");
  34. })
  35. $("#btn5").click(function(){
  36. var obj = $("div:gt(3)");
  37. obj.css("background","yellow");
  38. })
  39. $("#txt").keydown(function(){
  40. alert("keydown")
  41. })
  42. })
  43. </script>
  44. </head>
  45. <body>
  46. <input type="text" id="txt" />
  47. <div id="one">我是div-0</div>
  48. <div id="two">我是div-1</div>
  49. <div>我是div-2
  50. <div>我是div-3</div>
  51. <div>我是div-4</div>
  52. </div>
  53. <div>我是div-5</div>
  54. <br />
  55. <span>我是span</span>
  56. <br/>
  57. <input type="button" value="获取第一个div" id="btn1"/>
  58. <br/>
  59. <input type="button" value="获取最后一个div" id="btn2"/>
  60. <br/>
  61. <input type="button" value="获取下标等于3的div" id="btn3"/>
  62. <br/>
  63. <input type="button" value="获取下标小于3的div" id="btn4"/>
  64. <br/>
  65. <input type="button" value="获取下标大于3的div" id="btn5"/>
  66. </body>
  67. </html>

2、表单属性过滤器
表单属性过滤器: 根据表单中dom对象的状态情况,定位dom对象的。
启用状态, enabled ,
不可用状态 disabled
选择状态 , checked , 例如radio, checkbox

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: gray;
  8. }
  9. </style>
  10. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  11. <script type="text/javascript">
  12. // $(document).ready( 函数 ): 当页面中的dom对象加载成功后,会执行ready(),
  13. // 相当于是onLoad().
  14. $(function() {
  15. //当页面dom对象加载后,给对象绑定事件,因为此时button对象已经在内存中创建好了.才能使用.
  16. $("#btn1").click(function(){
  17. //获取所有可以使用的text
  18. var obj = $(":text:enabled");
  19. //设置 jquery数组值所有dom对象的value值
  20. obj.val("hello");
  21. })
  22. $("#btn2").click(function(){
  23. //获取选中的checkbox
  24. var obj = $(":checkbox:checked");
  25. for(var i=0;i<obj.length;i++){
  26. //alert( obj[i].value);
  27. alert( $(obj[i]).val() )
  28. }
  29. })
  30. $("#btn3").click(function(){
  31. //获取select选中的值
  32. //var obj= $("select>option:selected");
  33. var obj = $("#yuyan>option:selected");
  34. alert(obj.val());
  35. })
  36. })
  37. </script>
  38. </head>
  39. <body>
  40. <input type="text" id="txt1" value="text1" /><br/>
  41. <input type="text" id="txt2" value="text2" disabled="true"/><br/>
  42. <input type="text" id="txt3" value="text3" /><br/>
  43. <input type="text" id="txt4" value="text4" disabled/><br/>
  44. <br/>
  45. <input type="checkbox" value="游泳" />游泳 <br/>
  46. <input type="checkbox" value="健身" checked />健身 <br/>
  47. <input type="checkbox" value="电子游戏" checked />电子游戏 <br/>
  48. <br/>
  49. <select id="yuyan">
  50. <option value="java">java语言</option>
  51. <option value="go" selected>go语言</option>
  52. <option value="python">python语言</option>
  53. </select>
  54. <br/>
  55. <input type="button" value="设置可以的text的value是hello" id="btn1"/>
  56. <br/>
  57. <button id="btn2">显示选中的复选框的值</button>
  58. <br/>
  59. <button id="btn3">显示选中下拉列表框的值</button>
  60. </body>
  61. </html>

四、each函数

1、each语法
1). 可以对 数组, json ,dom数组循环处理。 数组, json中的每个成员都会调用一次处理函数。
var arr = { 1, 2, 3} //数组
var json = {“name”:”lisi”,”age”:20 }
var obj = $(“:text”);
语法: $.each( 循环的内容, 处理函数 ) :表示使用jquery的each,循环数组,每个数组成员,
都会执行后面的“处理函数”一次。
$: 相当于是java的一个类名
each:就是类中的静态方法。
静态方法调用,可以使用 类名.方法名称
处理函数:function(index, emelent) :
index, element都是自定义的形参, 名称自定义。
index:循环的索引
element:数组中的成员
js循环数组:
for(var i=0;i var item = arr[i]; //数组成员
//操作数组成员
shuchu( i , item);
}
function shuchu(index, emlemnt){
输出index ,element
}
2).循环jquery对象, jquery对象就是dom数组
jquery对象.each( function(index,element) {} )

五、jquery中给dom对象绑定事件

1) $(选择器).事件名称( 事件的处理函数)
$(选择器):定位dom对象, dom对象可以有多个, 这些dom对象都绑定事件了
事件名称:就是js中事件去掉on的部分, 例如 js中的单击事件 onclick(),
jquery中的事件名称,就是click,都是小写的。
事件的处理函数:就是一个function ,当事件发生时,执行这个函数的内容。
例如给id是btn的按钮绑定单击事件
$(“#btn”).click(funtion(){
alert(“btn按钮单击了”)
})

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: yellow;
  8. }
  9. </style>
  10. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  11. <script type="text/javascript">
  12. //在dom对象创建好后,绑定事件
  13. $(function(){
  14. $("#btn1").click(function(){
  15. //val() 获取dom数组中第一个对象的value属性值
  16. var text = $(":text").val();
  17. alert(text)
  18. })
  19. $("#btn2").click(function(){
  20. //设置所有的text的value为新值
  21. $(":text").val("三国演义");
  22. })
  23. $("#btn3").click(function(){
  24. //获取div ,text()无参数,获取dom对象的文本值,连接成一个字符串
  25. alert($("div").text());
  26. })
  27. $("#btn4").click(function(){
  28. //设置div的文本值
  29. $("div").text("新的div文本内容");
  30. })
  31. $("#btn5").click(function(){
  32. //读取指定属性的值
  33. alert($("img").attr("src"));
  34. })
  35. $("#btn6").click(function(){
  36. //设置指定属性的,指定值
  37. $("img").attr("src","img/ex2.jpg");
  38. //val(), text();
  39. })
  40. })
  41. </script>
  42. </head>
  43. <body>
  44. <input type="text" value="刘备" /><br/>
  45. <input type="text" value="关羽" /><br/>
  46. <input type="text" value="张飞" /><br/>
  47. <br/>
  48. <div>1.我第一个div</div>
  49. <div>2.我第二个div</div>
  50. <div>3.我第三个div</div>
  51. <br/>
  52. <img src="img/ex1.jpg" id="image1" />
  53. <br/>
  54. <input type="button" value="获取第一文本框的值" id="btn1"/>
  55. <br/>
  56. <br/>
  57. <input type="button" value="设置所有文本框的value值" id="btn2"/>
  58. <br/>
  59. <br/>
  60. <input type="button" value="获取所有div的文本值" id="btn3"/>
  61. <br/>
  62. <br/>
  63. <input type="button" value="设置div的文本值" id="btn4"/>
  64. <br/>
  65. <br/>
  66. <input type="button" value="读取src属性的值" id="btn5"/>
  67. <br/>
  68. <br/>
  69. <input type="button" value="设置指定的属性值" id="btn6"/>
  70. </body>
  71. </html>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: yellow;
  8. }
  9. </style>
  10. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  11. <script type="text/javascript">
  12. //在dom对象创建好后,绑定事件
  13. $(function(){
  14. $("#btn1").click(function(){
  15. //使用remove:删除父和子所有的dom对象
  16. $("select").remove();
  17. })
  18. $("#btn2").click(function(){
  19. //使用empty 删除子dom对象
  20. $("select").empty();
  21. })
  22. $("#btn3").click(function(){
  23. //使用append,增加dom对象
  24. //$("#fatcher").append("<input type='button' value='我是增加的按钮' />")
  25. //增加一个table
  26. $("#fatcher").append("<table border=1><tr><td>第一列</td><td>第二列</td></tr></table>");
  27. })
  28. $("#btn4").click(function(){
  29. //使用html()函数,获取数组中第一个dom对象的文本值(innerHTML)
  30. //alert($("span").text()); // 我是mysql数据库
  31. alert( $("span").html() ); //我是mysql <b>数据库</b>
  32. })
  33. $("#btn5").click(function(){
  34. //使用 html(有参数):设置dom对象的文本值
  35. $("span").html("我是新的<b>数据</b>");
  36. })
  37. $("#btn6").click(function(){
  38. //循环普通数组,非dom数组
  39. var arr = [ 11, 12, 13];
  40. $.each(arr, function(i,n){
  41. alert("循环变量:"+i + "=====数组成员:"+ n);
  42. })
  43. })
  44. $("#btn7").click(function(){
  45. //循环json
  46. var json={"name":"张三","age":20};
  47. //var obj = eval("{'name':'张三','age':20}");
  48. $.each(json,function(i,n){
  49. alert("i是key="+i+",n是值="+n);
  50. })
  51. })
  52. $("#btn8").click(function(){
  53. //循环dom数组
  54. var domArray = $(":text");//dom数组
  55. $.each( domArray, function(i,n){
  56. // n 是数组中的dom对象
  57. alert("i="+i+" , n="+n.value);
  58. })
  59. })
  60. $("#btn9").click(function(){
  61. //循环jquery对象, jquery对象就是dom数组
  62. $(":text").each(function(i,n){
  63. alert("i="+i+",n="+ n.value);
  64. })
  65. })
  66. })
  67. </script>
  68. </head>
  69. <body>
  70. <input type="text" value="刘备" />
  71. <input type="text" value="关羽" />
  72. <input type="text" value="张飞" />
  73. <br/>
  74. <select>
  75. <option value="老虎">老虎</option>
  76. <option value="狮子">狮子</option>
  77. <option value="豹子">豹子</option>
  78. </select>
  79. <br/>
  80. <br/>
  81. <select>
  82. <option value="亚洲">亚洲</option>
  83. <option value="欧洲">欧洲</option>
  84. <option value="美洲">美洲</option>
  85. </select>
  86. <br/>
  87. <br/>
  88. <div id="fatcher">我是第一个div</div>
  89. <br/
  90. <br/>
  91. <span>我是mysql <b>数据库</b></span>
  92. <br/>
  93. <span>我是jdbc</span>
  94. <br/>
  95. <br/>
  96. <input type="button" value="使用remove删除父和子对象" id="btn1"/>
  97. <br/>
  98. <br/>
  99. <input type="button" value="使用empty删子对象" id="btn2"/>
  100. <br/>
  101. <br/>
  102. <input type="button" value="使用append,增加dom对象" id="btn3"/>
  103. <br/>
  104. <br/>
  105. <input type="button" value="获取第一个dom的文本值" id="btn4"/>
  106. <br/>
  107. <br/>
  108. <input type="button" value="设置span的所以dom的文本值" id="btn5"/>
  109. <br/>
  110. <br/>
  111. <input type="button" value="循环普通数组" id="btn6"/>
  112. <br/>
  113. <br/>
  114. <input type="button" value="循环json" id="btn7"/>
  115. <br/>
  116. <br/>
  117. <input type="button" value="循环dom数组" id="btn8"/>
  118. <br/>
  119. <br/>
  120. <input type="button" value="循环jquery对象" id="btn9"/>
  121. </body>
  122. </html>

2) on 事件绑定
$(选择器).on( 事件名称 , 事件的处理函数)
事件名称: 就是js事件中去掉on的部分, 例如js中onclick ,这里就是click
事件的处理函数: function 定义。
例如,
$(“#btn”).on(“click”, function() { 处理按钮单击 } )

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <style type="text/css">
  6. div{
  7. background: yellow;
  8. }
  9. </style>
  10. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  11. <script type="text/javascript">
  12. //在dom对象创建好后,绑定事件
  13. $(function(){
  14. $("#btn1").click(function(){
  15. //使用append增加dom对象
  16. $("#mydiv").append("<input id='newBtn' type='button' value='我是新加入的按钮'/>");
  17. //使用on给按钮绑定事件
  18. $("#newBtn").on("click",function(){
  19. alert("新建的按钮被单击了");
  20. })
  21. })
  22. })
  23. </script>
  24. </head>
  25. <body>
  26. <div id="mydiv">
  27. 我是一个div ,需要增加一个button
  28. </div>
  29. <input type="button" value="创建一个button,绑定一个click" id="btn1"/>
  30. <br/>
  31. </body>
  32. </html>

六、使用jquery的函数,实现ajax请求的处理。

  • 没有jquery之前,使用XMLHttpRequest做ajax , 有4个步骤。 jquery简化了ajax请求的处理。
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>使用json格式的数据</title>
  5. <script type="text/javascript">
  6. function doSearch() {
  7. //1.创建异步对象
  8. var xmlHttp = new XMLHttpRequest();
  9. //2.绑定事件
  10. xmlHttp.onreadystatechange = function() {
  11. if( xmlHttp.readyState == 4 && xmlHttp.status == 200){
  12. var data = xmlHttp.responseText;
  13. //eval是执行括号中的代码, 把json字符串转为json对象
  14. var jsonobj = eval("(" + data + ")");
  15. //更新dom对象
  16. callback(jsonobj);
  17. }
  18. }
  19. //3.初始异步对象的请求参数
  20. var proid = document.getElementById("proid").value;
  21. // true :异步处理请求。 使用异步对象发起请求后,不用等待数据处理完毕,就可以执行其它的操作。
  22. // false:同步,异步对象必须处理完成请求,从服务器端获取数据后,才能执行send之后的代码。 任意时刻只能执行一个异步请求。
  23. xmlHttp.open("get","queryjson?proid="+proid,false);
  24. //4.发送请求
  25. xmlHttp.send();
  26. //也可以创建其它的 XMLHttpRequest, 发送其它的请求处理。
  27. alert("====在send之后的代码====")
  28. }
  29. //定义函数,处理服务器端返回的数据
  30. function callback(json){
  31. document.getElementById("proname").value = json.name;
  32. document.getElementById("projiancheng").value=json.jiancheng;
  33. document.getElementById("proshenghui").value= json.shenghui;
  34. }
  35. </script>
  36. </head>
  37. <body>
  38. <p>ajax请求使用json格式的数据</p>
  39. <table>
  40. <tr>
  41. <td>省份编号:</td>
  42. <td><input type="text" id="proid">
  43. <input type="button" value="搜索" onclick="doSearch()">
  44. </td>
  45. </tr>
  46. <tr>
  47. <td>省份名称:</td>
  48. <td><input type="text" id="proname"></td>
  49. </tr>
  50. <tr>
  51. <td>省份简称:</td>
  52. <td><input type="text" id="projiancheng"></td>
  53. </tr>
  54. <tr>
  55. <td>省会名称:</td>
  56. <td><input type="text" id="proshenghui"></td>
  57. </tr>
  58. </table>
  59. </body>
  60. </html>
  • 使用三个函数可以实现ajax请求的处理。

    1) $.ajax() : jquery中实现ajax的核心函数。
    2) $.post() : 使用post方式做ajax请求。
    3) $.get() : 使用get方式发送ajax请求。

    $.post()和$.get() 他们在内部都是调用的 $.ajax()

    介绍 $.ajax函数的使用, 函数的参数表示请求的url, 请求的方式,参数值等信息。
    $.ajax()参数是一个json的结构。

    例如: $.ajax( {名称:值, 名称1:值1….. } )
    例如: $.ajax( { async:true ,
    contentType:”application/json” ,
    data: {name:”lisi”,age:20 },
    dataType:”json”,
    error:function(){
    请求出现错误时,执行的函数
    },
    success:function( data ) {
    // data 就是responseText, 是jquery处理后的数据。
    },
    url:”bmiAjax”,
    type:”get”
    }

    )

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>使用json格式的数据</title>
  5. <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  6. <script type="text/javascript">
  7. $(function(){
  8. $("#btn").click(function () {
  9. //获取dom的value值
  10. var proid = $("#proid").val();
  11. //发起ajax请求
  12. $.ajax({
  13. url:"queryjson",
  14. data:{
  15. "proid":proid
  16. },
  17. dataType:"json",
  18. success:function (resp) {
  19. //resp是json对象
  20. //alert(resp.name + " === "+resp.jiancheng)
  21. $("#proname").val(resp.name);
  22. $("#projiancheng").val(resp.jiancheng);
  23. $("#proshenghui").val(resp.shenghui);
  24. }
  25. })
  26. });
  27. })
  28. </script>
  29. </head>
  30. <body>
  31. <p>ajax请求使用json格式的数据</p>
  32. <table>
  33. <tr>
  34. <td>省份编号:</td>
  35. <td><input type="text" id="proid">
  36. <input type="button" value="搜索" id="btn">
  37. </td>
  38. </tr>
  39. <tr>
  40. <td>省份名称:</td>
  41. <td><input type="text" id="proname"></td>
  42. </tr>
  43. <tr>
  44. <td>省份简称:</td>
  45. <td><input type="text" id="projiancheng"></td>
  46. </tr>
  47. <tr>
  48. <td>省会名称:</td>
  49. <td><input type="text" id="proshenghui"></td>
  50. </tr>
  51. </table>
  52. </body>
  53. </html>
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>ajax根据省份id获取名称</title>
  5. <script type="text/javascript">
  6. function search() {
  7. //发起ajax请求,传递参数给服务器, 服务器返回数据
  8. //1.创建异步对象
  9. var xmlHttp = new XMLHttpRequest();
  10. //2.绑定事件
  11. xmlHttp.onreadystatechange = function () {
  12. if( xmlHttp.readyState == 4 && xmlHttp.status== 200){
  13. //alert(xmlHttp.responseText)
  14. //更新页面,就是更新dom对象
  15. document.getElementById("proname").value= xmlHttp.responseText;
  16. }
  17. }
  18. //3.初始异步对象
  19. //获取proid文本框的值
  20. var proid = document.getElementById("proid").value;
  21. xmlHttp.open("get","queryProvice?proid="+proid,true);
  22. //4.发送请求
  23. xmlHttp.send();
  24. }
  25. </script>
  26. </head>
  27. <body>
  28. <p>ajax根据省份id获取名称</p>
  29. <table>
  30. <tr>
  31. <td>省份编号:</td>
  32. <td><input type="text" id="proid"/>
  33. <input type="button" value="搜索" onclick="search()" />
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>省份名称:</td>
  38. <td><input type="text" id="proname" /></td>
  39. </tr>
  40. </table>
  41. </body>
  42. <a href="html/main.jsp">link</a>
  43. </html>

七、json结构的参数说明:

1)async:是一个boolean类型的值, 默认是true ,表示异步请求的。可以不写async这个配置项
xmlHttp.open(get,url,true),第三个参数一样的意思。

2)contentType: 一个字符串,表示从浏览器发送服务器的参数的类型。 可以不写。
例如你想表示请求的参数是json格式的, 可以写application/json

  1. 3)data: 可以是字符串,数组,json,表示请求的参数和参数值。 常用的是json格式的数据

4)dataType: 表示期望从服务器端返回的数据格式,可选的有: xml , html ,text ,json
当我们使用$.ajax()发送请求时, 会把dataType的值发送给服务器, 那我们的servlet能够
读取到dataType的值,就知道你的浏览器需要的是 json或者xml的数据,那么服务器就可以
返回你需要的数据格式。

5)error: 一个function ,表示当请求发生错误时,执行的函数。
error:function() { 发生错误时执行 }
6)sucess:一个function , 请求成功了,从服务器端返回了数据,会执行success指定函数
之前使用XMLHttpRequest对象, 当readyState==4 && status==200的时候。

7)url:请求的地址

8)type:请求方式,get或者post, 不用区分大小写。 默认是get方式。
主要使用的是 url , data ,dataType, success .