jQuery

jQuery

1.介绍

  1. 目的:简化JavaScript对HTML DOM操作。是一个JS库,里面有很多函数(操作dom,事件处理,动画,ajax)。免费开源,小巧87k,兼容各类浏览器,文档齐备。

  2. dom对象和jQuery对象。例子见**E:\Study-Webdevelope\codes\2020华电培训作业\project\jQuer学习笔记**

    • dom对象(操作dom属性方法):使用js创建的对象,js对象(dom对象),var obj = document.getElementById(“name”);obj为dom(js)对象。

    • jquery对象(操作jquery库中函数和方法):使用jquery语法创建的对象,【jquery表示的对象都是数组,每个成员是一个DOM对象】。var obj = $("#txt"),obj为jquery对象,它是一个数组,现在数组中就一个值。

    • 【dom对象和jquery对象可以相互转换】。

      ​ dom---->jquery: 语法:$(dom对象)

      ​ jquery—>dom: 语法:从数组获取第一个对象,第一个对象就是dom对象。使用[0]或get(0)。

    <!--/dom----jquery:-->
    <script type="text/javascript">
        window.onload = function(){
            //获取dom对象
            var obj = document.getElementById("btn");
            obj.onclick = function(){
                alert(obj.value);
            }
            //dom对象转jquery对象
            var $obj = $(obj);
            console.log("按钮value="+$obj.val());//调用val()方法
        }
    </script>
    <input type="button" id="btn" value="按钮"/>
        <!--=================  jquery---》dom:=========================-->
    <script type="text/javascript">
        function btnClick(){
            //获取jquery对象
            var obj = $("#txt");
            alert("jquery获取到"+obj.val());
            //jquery对象转dom对象
            var obj1 = obj.get(0);//这里id="txt"的只有一个值,所以数组长度为1.【等价var obj1 = obj[0]】
            var num = obj1.value;
            obj1.value = num * num;
            alert("dom计算结果:"+obj1.value);
        }
    </script>
    </head>
    <body>
        <div>
            <input type="button" id="btn" value="计算平方" onclick="btnClick()" />
            <input type="text" id="txt" />
        </div>
    </body>
    
    
  3. image-20201018205821846

2.选择器:

  1. image-20201018160514658

    注意:标签没有,表单选择器照样可以使用。$(":tr");不能用,tr不是input标签,无type属性

  2. id选择器 class选择器 标签选择器 所有选择器 组合选择器

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>选择器</title>
            <script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
            <script type="text/javascript">
                function btnID(){
                    //id选择器
                    var obj1 = $("#div1");
                    obj1.css("background","blue");
                }
                function btnClass(){
                    //class选择器
                    var obj2 = $(".div2");
                    obj2.css("background","yellow");
                }
                function btnDiv(){
                    //标签选择器
                    var obj3 = $("div");
                    obj3.css("background","red");
                }
                function allDom(){
                    //使用所有选择器
                    var obj4 = $("*");
                    obj4.css("background","green");
                }
                function btnCom(){
                    //组合选择器
                    var obj5 = $("#div1,.div2,input");
                    obj5.css("background","pink");
                }
            </script>
        </head>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: gray;
            }
        </style>
        <body>
            <div id="div1">第一个div</div><br/>
            <div class="div2">第二个div</div><br/>
            <div>第三个div</div><br/>
            <span class="div2">span标签</span><br/>
            <input type="button" value="id选择器获取dom对象" onclick="btnID()"/>
    
            <input type="button" value="class选择器获取dom对象" onclick="btnClass()"/>
            <input type="button" value="标签选择器获取dom对象" onclick="btnDiv()"/>
            <input type="button" value="所有选择器获取dom对象" onclick="allDom()"/>
            <input type="button" value="组合选择器获取dom对象" onclick="btnCom()"/>
        </body>
    </html>
    
  3. 表单选择器

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>表单选择器</title>
    		<script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
    		<script type="text/javascript">
    			function btnText(){
    				//获取所有属性text的单行文本框【数组】
    				var txt = $(":text");
    				alert(txt.val());
    			}
    			function btnPwd(){
    				//获取所有password【数组】
    				var pwd = $(":password");
    				alert(pwd.val());
    			}
    			function btnRadio(){
    				//获取所有radio【数组】
    				var rad = $(":radio");
    				for(var i=0;i<rad.length;i++){
    					alert(rad[i].value);
    				}
    			}
    			function btnCb(){
    				//获取所有的checkbox【数组】
    				var cb = $(":checkbox");
    				for(var i=0;i<cb.length;i++){
    					alert(cb[i].value);//数组每一个成员是一个dom对象
    					//转成jquery对象
    					console.log($(cb[i]).val());//bike run basketball
    				}
    				console.log($(cb).val());//bike只能得到第一个 
    			}
    		</script>
    	</head>
    	<body>
    		<input type="text" id="txt" /><br/>
    		<input type="password" id="pwd" />
    		<br/>
    		<input type="radio" name="sex" value="men"/><input type="radio" name="sex" value="women"/><br/>
    		<input type="checkbox" name="hobby" value="bike"/>骑行
    		<input type="checkbox" name="hobby" value="run"/>跑步
    		<input type="checkbox" name="hobby" value="basketball"/>篮球
    		<br/>
    		<input type="button" value="获取text" onclick="btnText()" />
    		<input type="button" value="获取password" onclick="btnPwd()" />
    		<input type="button" value="获取radio" onclick="btnRadio()" />
    		<input type="button" value="获取checkbox" onclick="btnCb()" />
    	</body>
    </html>
    

3.过滤器

3.1介绍

image-20201018203948575

3.2基本过滤器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过滤器</title>
		<script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
		<style>
			div{
				background-color: gray;
			}
		</style>
		<script type="text/javascript">
			//基本过滤器
			$(function(){//等价于$(document).ready(function(){...})相当于js中的onload(),页面加载完毕
				//绑定事件,语法:$(选择器).事件名称(function(){...})
				$("#btn1").click(function(){
					$("div:first").css("background","green");
				})
				//绑定事件,语法:$(选择器).事件名称(function(){...})
				$("#btn2").click(function(){
					$("div:last").css("background","yellow");
				})
				//绑定事件,语法:$(选择器).事件名称(function(){...})
				$("#btn3").click(function(){
					$("div:eq(3)").css("background","green");
				})
				//绑定事件,语法:$(选择器).事件名称(function(){...})
				$("#btn4").click(function(){
					$("div:lt(3)").css("background","pink");
				})
				//绑定事件,语法:$(选择器).事件名称(function(){...})
				$("#btn5").click(function(){
					$("div:gt(3)").css("background","white");
				})
			})
		</script>
	</head>
	<body>
		<div>我是div1</div>
		<div>我是div2</div>
		<div>我是div3
			<div>我是div3-1</div>
			<div>我是div3-2</div>
		</div>
		<div>我是div4</div>
		<div>我是div5</div>
		<input type="button" id="btn1" value="改变first"/>
		<input type="button" id="btn2" value="改变last"/>
		<input type="button" id="btn3" value="改变div[3]"/>
		<input type="button" id="btn4" value="改变div下标<(3)"/>
		<input type="button" id="btn5" value="改变div下标>(3)"/>
	</body>
</html>

3.3表单对象属性过滤器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单属性过滤器</title>
		<script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			$(function(){
				//绑定事件
				$("#btn1").click(function(){
					var obj = $(":text:enabled");//获取可使用的text文本框
					for(var i=0;i<obj.length;i++){
						obj[i].value = "hello";
					}
				})
				//绑定事件
				$("#btn1-1").click(function(){
					var obj = $(":text:disabled");//获取不可使用的text文本框
					for(var i=0;i<obj.length;i++){
						obj[i].value = "world";
					}
				})
				//绑定事件
				$("#btn2").click(function(){
					var obj = $(":radio:checked");//获取选中单选框value
					for(var i=0;i<obj.length;i++){
						alert(obj[i].value);
					}
				})
				//绑定事件
				$("#btn3").click(function(){
					var obj = $(":checkbox:checked");//获取选中复选框value
					for(var i=0;i<obj.length;i++){
						//alert(obj[i].value);
						alert($(obj[i]).val());
					}
				})
				//绑定事件
				$("#btn4").click(function(){
					//var obj = $("select>option:selected");
					var obj = $("#language>option:selected");//获取选中下拉列value
					alert(obj.val());
				})
			})
		</script>
	</head>
	<body>
		<input type="text" /><br/>
		<input type="text" disabled="true"/><br/>
		<input type="text" /><br/>
		<input type="text" disabled /><br/>
		
		<input type="radio" name="sex" value=""/><br/>
		<input type="radio" name="sex" value="" checked="true"/><br/>
		
		<input type="checkbox" name="hobby" value="篮球" />篮球<br/>
		<input type="checkbox" name="hobby" value="音乐" checked="true" />音乐<br/>
		<input type="checkbox" name="hobby" value="足球"  checked/>足球<br/>
		
		<select id="language">
			<option value="java语言">java语言</option>
			<option value="go语言"  selected="true">go语言</option>
			<option value="python语言">python语言</option>
			<option value="c语言">c语言</option>
		</select><br/>
		<input type="button" id="btn1" value="改变可使用text的值为hello"/>
		<input type="button" id="btn1-1" value="改变不可使用text的值为world"/><br/>
		<button id="btn2" >显示选中单选框的值</button>
		<button id="btn3" >显示选中复选框的值</button>
		<button id="btn4" >显示选中下拉列的值</button>
	</body>
</html>

4.函数

4.1 val() text() attr()

image-20201018220716026

image-20201018220758104

image-20201018220829389

		$(function(){
					//绑定事件
					$("#btn1").click(function(){
						alert($(":text").val());//获取第一个:text的value。
					})
					//绑定事件
					$("#btn1-1").click(function(){
						$(":text").val("hello");//给所有:text统一赋值hello
					})
					//绑定事件
					$("#btn2").click(function(){
						alert($("div").text());//获取所有div文本值,以字符串展示。
					})
					//绑定事件
					$("#btn3").click(function(){
						$("div").text("hello world");//设置所有div文本值为hello world。
					})
					//绑定事件
					$("#btn4").click(function(){
						alert($("img").attr("src"));//获取第一个img的属性值src.
					})
					//绑定事件
					$("#btn5").click(function(){
						$("img").attr("src","./img/2.jpg");//设置所有img的属性src的值为2.jpg
					})
				})
			</script>
		</head>
		<body>
			<input type="text" /><br/>
			<input type="text" disabled="true"/><br/>
			<input type="text" /><br/>
			<input type="text" disabled /><br/>
			
			<div>第一个div</div>
			<div>第二个div</div>
			<div>第三个div</div><br/>
			
			<img src="./img/1.jpg" /><br/>
			
			<input type="button" id="btn1" value="获取第一text文本框值"/>
			<input type="button" id="btn1-1" value="对所有text文本框统一赋值hello"/><br/>
			<button id="btn2" >显示所有div文本值,合成字符串</button>
			<button id="btn3" >设置所有div文本值为hello world</button>
			<button id="btn4" >获取第一个img的属性src值</button>
			<button id="btn5" >设置所有img的属性src值为2.jpg</button>

4.2 第二组

image-20201018225911951

image-20201018225928004

image-20201018225944455

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>函数1</title>
		<script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
			<script type="text/javascript">
				$(function(){
					//绑定事件
					$("#btn1").click(function(){
						$("div").hide();//隐藏所有div。
					})
					//绑定事件
					$("#btn1-1").click(function(){
						$("div").show();//显示所有div
					})
					//绑定事件
					$("#btn2").click(function(){
						$("select").remove();//删除所有下拉列表和子选择项。
					})
					//绑定事件
					$("#btn3").click(function(){
						$("select").empty();//删除所有下拉列表的子选择项。
					})
					//绑定事件
					$("#btn4").click(function(){
						$("p").append("<div><button>新增的按钮</button></div>");//p中append后添加html代码展示.
					})
					//绑定事件
					$("#btn5").click(function(){
						alert($("span").html());//获取第一个span的html内容[mysql是一个<b>数据库</b>]
					})
					//绑定事件
					$("#btn6").click(function(){
						alert($("span").text());//获取所有span的text内容[mysql是一个数据库JDBC访问书库]
					})
					//绑定事件
					$("#btn7").click(function(){
						$("span").html("<b>设置span</b>");//设置所有span文本内容
					})
					//绑定事件
					$("#btn8").click(function(){
						//$.each(对象,function(i.e){....})
						var arra = [1,2,"abc"]//循环数组
						$.each(arra,function(i,n){
							alert("i=="+i+",n=="+n);
						})
						var json = {"name":"jack","age":20}//循环json
						$.each(json,function(i,n){
							alert("i=="+i+",n=="+n);
						})
						var obj = $(":text");//dom对象数组
						$.each(obj,function(i,n){
							alert("i=="+i+",n=="+n.value);
						})
						//jquery对象.each(function(i,e){....})//dom对象数组
						$(":text").each(function(i,e){
							alert("i=="+i+",e=="+e.value);
						})
					})
				})
			</script>
		</head>
		<body>
			<input type="text" value="1111"/><br/>
			<input type="text" value="222" disabled="true"/><br/>
			<input type="text" value="333" /><br/>
			<input type="text" value="44" disabled /><br/>
			
			<div>第一个div</div>
			<div>第二个div</div>
			<div>第三个div</div><br/>
			
			<p>append</p>
			<span>mysql是一个<b>数据库</b></span><br/>
			<span>JDBC访问书库</b></span>
			<br/>
			<br/>
			<select id="language">
				<option value="java语言">java语言</option>
				<option value="go语言"  selected="true">go语言</option>
				<option value="python语言">python语言</option>
				<option value="c语言">c语言</option>
			</select><br/><br/>
			<select id="language">
				<option value="java语言" selected="true">java语言</option>
				<option value="go语言" >go语言</option>
				<option value="python语言">python语言</option>
				<option value="c语言">c语言</option>
			</select><br/><br/>
			
			<input type="button" id="btn1" value="隐藏所有div"/><br/>
			<input type="button" id="btn1-1" value="显示所有div"/><br/>
			<button id="btn2" >删除所有下拉列表和子选择项</button><br/>
			<button id="btn3" >删除所有下拉列表的子选择项</button><br/>
			<button id="btn4" >p中append后添加html代码展示</button><br/>
			<button id="btn5" >获取第一个span文本html内容原样</button><br/>
			<button id="btn6" >获取所有span的text内容字符串</button><br/>
			<button id="btn7" >html样式设置所有span文本内容</button><br/>
			<button id="btn8" >each循环</button><br/>
	</body>
</html>

5.事件绑定

  1. image-20201019132748947

  2. <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<script type="text/javascript" src="../js/jquery-3.4.1.js"></script>
    		<title>事件绑定两种方式</title>
    		<script type="text/javascript">
    			$(function(){
    				//第一种事件绑定绑定
    				$(":button").click(function(){
    					$("div").append("<br/><button id='newBtn'>新增的按钮</button>");
    					//第二种事件绑定绑定
    					$("#newBtn").on("click",function(){
    						alert("新增按钮被点击了");
    					})
    				})
    			})
    		</script>
    	</head>
    	<body>
    		<div>我是一个div,我需要新增一个按钮</div><br/>
    		<input type="button" value="动态新增按钮"/>
    	</body>
    </html>
    

6.Ajax(******)

6.1介绍

image-20201019134844872

image-20201019135342922

image-20201019135409766

6.2 $.ajax()函数演示:

​ 改进**E:\学习文档\数据库课程设计\IDE-Workspace\Ajax+jQuery\002-ajaxDatabase==****

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>展示省份和城市信息</title>
    <script type="text/javascript" src="./js/jquery-3.4.1.js"></script>
    <style>
      /*背景层*/
      #popLayer {
        display: none;
        background-color: #B3B3B3;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 10;
        -moz-opacity: 0.8;
        opacity:.80;
        filter: alpha(opacity=80);/* 只支持IE6、7、8、9 */
      }

      /*弹出层*/
      #popBox {
        display: none;
        background-color: #FFFFFF;
        z-index: 11;
        width: 200px;
        height: 200px;
        position:fixed;
        top:0;
        right:0;
        left:0;
        bottom:0;
        margin:auto;
      }

      #popBox .close{
        text-align: right;
        margin-right: 5px;
        background-color: #F8F8F8;
      }

      /*关闭按钮*/
      #popBox .close a {
        text-decoration: none;
        color: #2D2C3B;
      }

    </style>
  </head>
  <body>
  <%--//利用Ajax+jquery实现局部刷新--%>
    <script type="text/javascript">
      $(function(){
        $("#btn1").click(function(){
          //获取dom对象
          var proviceID = $("#proviceID").val();
          //ajax发送请求
          $.ajax({
            url:"/myWeb/provice/search",
            data:{"proviceID":proviceID},
            dataType:"json",
            success:function(resp){
              $("#provAllName").val(resp.provAllName);
              $("#provSimName").val(resp.provSimName);
              $("#priCity").val(resp.priCity);
            }
          })
        })
      })
      //===================================================================================
      /*点击关闭按钮*/
      function closeBox() {
        //隐藏弹框
        $("#popBox").css("display","none");
        $("#popLayer").css("display","none");
      }
      //点击弹出弹框
      $(function () {
        $("#btn2").click(function(){
          //展示弹框
          $("#popBox").css("display","block");
          $("#popLayer").css("display","block");
          //获取dom对象
          var proviceID = $("#proviceID").val();
          $.ajax({
            url:"/myWeb/cities/search",
            data:{"proviceID":proviceID},
            dataType:"json",
            success:function(resp){
             $.each(resp,function (i,e) {
               $("#content").append("<p>"+e.cityName+"</p>");
             })
            }
          })
        })
      })

            // var text = "";
            // for(i in data) text += data[i].cityName+"\n";
            // content.innerText = text;
    </script>
    <center>
      <table border="0">
        <tr>
          <td>省份编号</td>
          <td>
            <select id="proviceID" style="width: -moz-available">
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6">6</option>
              <option value="7">7</option>
              <option value="8">8</option>
              <option value="9">9</option>
            </select>
          </td>
          <td><input type="button" id="btn1" value="搜索"/></td>
        </tr>
        <tr>
          <td>省份全称</td>
          <td><input type="text" id="provAllName" style="border-radius: 4px;background-color: darkgray"/></td>
        </tr>
        <tr>
          <td>省份简称</td>
          <td><input type="text" id="provSimName" style="border-radius: 4px;background-color: darkgray"/></td>
        </tr>
        <tr>
          <td>省份省会</td>
          <td><input type="text" id="priCity" style="border-radius: 4px;background-color: darkgray"/></td>
        </tr>
        <tr>
          <td>所有城市</td>
          <td><input type="button" name="popBox" id="btn2" value="展示所有城市" style="border-radius: 4px; color: darkseagreen"/></td>
        </tr>
      </table>
    </center>

  <div id="popLayer"></div>
  <div id="popBox" style="background-color: #B3B3B3">
    <div class="close">
      <a href="javascript:void(0)" onclick="closeBox()" style="color: red">关闭</a>
    </div>
    <div id="content" align="center" style="font-size: 20px"></div>
  </div>
  </body>
</html>

6.3 . g e t ( ) 函 数 同 .get()函数同 .get().post()函数

  1. image-20201019153006610

    image-20201019153016984

  2. 代码展示

    **注意点:**不这样写必报错

    $.post("/myWeb/cities/search", {proviceID: proviceID},callback,“json”);

    发送的参数名:proviceID,【不是**“proviceID”**】

    调用的函数:callback【不是callback()

    <%--//利用Ajax+jquery实现局部刷新--%>
    <script type="text/javascript">
        $(function(){
            $("#btn1").click(function(){
                //获取dom对象
                var proviceID = $("#proviceID").val();
                //【ajax发送请求】
                $.ajax({
                    url:"/myWeb/provice/search",
                    data:{"proviceID":proviceID},
                    dataType:"json",
                    success:function(resp){
                        $("#provAllName").val(resp.provAllName);
                        $("#provSimName").val(resp.provSimName);
                        $("#priCity").val(resp.priCity);
                    }
                })
            })
        })
        //===================================================================================
        /*点击关闭按钮*/
        function closeBox() {
            //隐藏弹框
            $("#popBox").css("display","none");
            $("#popLayer").css("display","none");
        }
        //点击弹出弹框
        $(function () {
            $("#btn2").click(function() {
                //展示弹框
                $("#popBox").css("display", "block");
                $("#popLayer").css("display", "block");
                //获取dom对象
                var proviceID = $("#proviceID").val();
                //【post方式发起ajax请求】
                $.post("/myWeb/cities/search", {proviceID: proviceID},callback,"json");
            })
        })
        function callback(resp) {
            //清除旧数据
            $("#content").empty();
            $.each(resp, function (i, e) {
                $("#content").append("<p>" + e.cityName + "</p>");
            })
        }
    </script>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值