jQuery

 

 

jQuery

javascript框架简介

  • 当先流行的Ext.js(重量级框架)、jQuery框架(轻量级框架)、react

jQuery特点

  • 理念:写得少,做得多
  1. 以CSS选择器为基础()
  2. 强大的插件机制 ez-ui
  3. 等等...

jQuery基础语法

  • 美元符号 定义 jQuery (又称工厂函数)
  • 选择器() “查询”和“查找“ $(selector).action()
	//文档就绪函数  (ready)
		$(document).ready(function() {
			$("#btn").click(function(){
				alert("hello,world!");
			});
		});
		
		//window.onload = function(){}
		//$(document).ready(function(){})  <====>  $(function(){})
  • 文档就绪函数
  • jQuery对象与DOM对象

    相互转化

    	   window.onload = function(){
    			document.getElementById("btn").onclick = function(){
    				var name = document.getElementById("user"); //DOM对象
    				// alert(name.value);
    				// DOM对象  ==>jQuery对象
    				var jname = $(name);
    				alert(jname.val());
    			};
    		};
    
    
    		$(function(){
    			$("#btn").click(function(){
    				var name = $("#user");  //jQuery对象
    				// alert(name.val());
    				//jQuery对象   ==>  DOM对象
    				var dname = name[0];
    				alert(dname.value());
    			});
    		});
    

jQuery选择器

案例:表格的隔行变色

 // javascript:
		window.onload = function(){
			var table = document.getElementById("tab");
			var tbody = table.getElementsByTagName("tbody")[0];
			var trs =  tbody.getElementByTagName("tr");
			for(var i=0; i<trs.length;i++){
				if(i%2==0){
					trs[i].style.backgroundColor="red";
				}
			}
		};  
	 //	 jQuery:
	$(function(){
		$("#tab tbody tr:even").css("background","red");
	});

jQuery 选择器

基本选择器

  1. id 选择器 $("#two").css("background","red");

  2. class 选择器 $(".two").css("background","red");

  3. 标签 选择器 $("div").css("background","red");

  4. “*****” 选择器

    $("*").css("background","red");
    $("#two,.one,span").css("background","red");   //与顺序无关
    

    层次选择器

    		$(function(){
    			/*基本选择器*/
    			//id
    //			$("#two").css("background","red");
    			//class
    //			$(".one").css("background","blue");
    			//biaoqian
    //			$("div").css("background","green");
    			//*
    //			$("*").css("background","red");
    
    			/*层次选择器*/
    			//选择body的后代div元素
    //			$("body div").css("background","red");
    			//选择body的子div元素
    //			$("body>div").css("background","red");
    			//选择id为one的紧邻下一个div元素 (兄弟元素)
    //			$("#one+div").css("background","yellow");
    //			$("#two").next("div").css("background","red");     //(上一个)
    //			$("#two").prev("div").css("background","red");     //(下一个)
    			// 选择id为two的后面的div兄弟元素
    //		    $("#two~div").css("background","red");
    			//选择id为two的所有的div兄弟元素
    			$("#two").siblings("div").css("background","pink");
    		});
    

    过滤选择器

    • 都以”:“开头

			/*-----过滤选择器------*/
			//选择页面中的第一个div元素
//			$("div :first").css("background","red");
			//选择页面中的最后一个div元素
//			$("div:last").css("background","red");
			//选择页面中id不等于one的div元素
//			$("div:not('#one')").css("background","red");
			//选择页面中第三个div元素
//			$("div:eq(3)").css("background","red");
			//选择页面中大于3div元素
//			$("div:gt(3)").css("background","red");
			//选择页面中第三个div元素
//			$("div:lt(3)").css("background","red");
			//选择索引值为奇数的div元素
//			$("div:odd").css("background","red");
			//选择索引值为偶数的div元素
//			$("div:even").css("background","red");
			//选择页面所有的标题元素
//			$(":header").css("background","red");
			//选取正在执行动画的元素
//			$("#one,span").hide(5000).show(5000);   //5000毫秒 = 5秒
			//选择正在执行动画的元素
//			$(":animated").css("background","red");
			//选择索引值为偶数的div并且大于3   (与顺序有关)
			$("div:even:gt(3)").css("background","red");

表单选择器

案例

    $(function () {
      //选择所有的表单元素
//        $(":input").css("background","red");
      //给文本框添加value值
      $(":text").val("123456");
      //给密码框添加value值
      $(":password").val("123456");
      //选中单选按钮的第一个选项
      $(":radio:eq(0)").attr("checked", true);
      //选中复选框的第二个选项
      $(":checkbox:eq(1)").attr("checked", true);
      //给图像添加src路径
      $(":image").attr("src", "../img/01.png");
      //选择文本域
      $(":file").css("background", "red");
      //设置提交按钮和充值按钮不可用
      $(":submit").attr("disabled", "disabled");
      $(":resrt").attr("disabled", "disabled");
      //给文本区域添加value值
      $(":textarea").val("123456");
      //选中下拉列表的第三个选项
      $(":select option:eq(2)").attr("selected", true);
      //获取隐藏域的name值
      var name = $(":hidden").val();
      alert(name);

    });

使用jQuery操作DOM

  • css样式

  • 文本和属性值

  • 操作DOM节点

  • 遍历DOM节点

  • 操作CSS-DOM

操作css样式

  • 追加和移除

    • addClass:追加样式(class)
    • removeClass:移除样式(class)
    • 单个样式css("属性名","属性值")
    • //同时设置多个样式 $("#ipu").css({"color":"pink","fontsize":"30px","width":"1500px"});
		$(function(){
            //单个样式css("属性名","属性值")
//            $("#ipu").css("color","red");
            //同时设置多个样式
            $("#ipu").css({"color":"pink","font-size":"30px","width":"1500px","background":"blue"});
            //addClass:追加样式(class)       removeClass:移除样式(class)
            //鼠标移入到li标签的时候,就追加.emClass,当鼠标离开li标签时就移除.emClass
            $("ul li").mouseover(function(){
                $(this).addClass("emClass");
            });

            $("ul li").mouseout(function(){
                $(this).removeClass("emClass");
            });
        });
  • html() 与 text()
       $(function(){
            $("#btn").click(function(){
                // html()  text()  当方法有参数的时候表示设置
                $("#box").html("<a href='http://www.baidu.com'>百度</a>")
                // $("#box").text("<a href='http://www.baidu.com'>百度</a>")
                
                // html()  text()  当方法有参数的时候表示获取
                var html = $("#box").html();  //获取的是html元素
 //               alert(html);
                var text = $("#box").text();   //获取的时文本信息
                alert(text);
            });
        });

插入节点

 
  • 追加元素

    • append(): 父节点
    • appendTo(): 子节点
  • 前置元素

    • prepend(): 父节点
    • prependTo(): 子节点
  • 兄弟元素

    • before(): 前置

    • after(): 后置

       $(function(){
            //创建一个jQuery节点
            var ipu = $("<p color='blue'>浪潮优派</p>")
            $("#btn").click(function(){
                //追加元素
                //append():父节点
//                $("#box").append(ipu);
                //appendTo():子节点
 //               ipu.appendTo("#box");

                //前置元素
                //prepend() 父节点
//                $("#box").prepend(ipu);
                //prependTo() 子节点
//                ipu.prependTo("#box");

                //after():旧元素调用  插入到之后成兄弟元素
                $("#box").after(ipu);
                $("#box").before(ipu);

            });
        });
  • 替换节点
    • replaceWith()
    • replaceAll()
  • 复制节点
    • clone() :用于复制某个节点
  • 删除节点
    • remove():删除整个节点
    • detach():删除整个节点,保留绑定事件
    • empty() : 清空节点内容

jQuery中的动画

显示与隐藏 : 同时改变元素的高度宽度以及不透明度 达到隐藏和显示的效果

  • show(2000) 方法 <==> element.css.("display","block/inline");
    • $("element").show();
  • Hide(2000) 方法 <==> element.css.("display","none");
    • $("element").hide();

淡入淡出 : 只改变元素的不透明度 来达到元素的隐藏和显示效果

  • faedIn(2000) :
  • faedOut(2000) :

卷入卷出 :只改变元素的高度 达到元素的显示和隐藏效果

  • slideDown(3000)
  • slideUp(3000)
       $(function(){
            //同时改变元素的高度宽度以及不透明度 达到隐藏和显示的效果
            $("#show").click(function(){
                $("#box").show(2000);
            });

            $("#hide").click(function(){
                $("#box").hide(2000);
            });
           
           //  faedIn()  只改变元素的不透明度 来达到元素的隐藏和显示效果
            $("#fadein").click(function(){
                $("#box").fadeIn(2000);
            });

            $("#fadeout").click(function(){
                $("#box").fadeOut(2000);
            });
           
             // slideDown()  只改变元素的高度  达到元素的显示和隐藏效果
            $("#slidedown").click(function(){
                $("#box").slideDown(3000);
            });
            $("#slideup").click(function(){
                $("#box").slideUp(3000);
            });
        });

自定义动画

  • 自定义动画

  • 累加动画

  • 累减动画

  • 多重动画

  • 动画队列

  • 回调函数

  • 停止动画 stop();参数默认为false

       $(function(){
            $("#start").click(function(){
                //"left":"500px" :表示元素移动到距离左边框500px的地方 (500,0)
                //"left":"-500px" :表示元素移动到距离左边框500px的地方 (-500,0)
 //               $("#box").animate({"left":"500px"},3000);

                //累加动画  a+=2  <===>  a=a+2
//                $("#box").animate({"left":"+=200px"},3000);

                //多重动画
                //往右移动的同时也往下移动500px   (500,-500)
 //               $("#box").animate({"left":"500px","top":"500px"},3000);
                //动画队列(链式结构)
                //先往右500px再往下500px
 //               $("#box").animate({"left":"500px"},2000).animate({"top":"500px"},2000);
                //回调函数
                $("#box").animate({"left":"500px"},2000,function(){
                    $(this).animate({"top":"500px"},2000,function(){
                        $(this).animate({"left":"0px"},2000,function(){
                            $(this).animate({"top":"0px"},2000,function(){
                            });
                        });
                    });
                });
 				$("#box").animate({"left":"500px"},2000)
                	 .animate({"top":"500px"},2000)
                	 .animate({"left":"0px"},2000)
                     .animate({"top":"0px"},2000);
            });
           //停止动画
            $("#stop").click(function(){
  //         $("#box").stop(false,false);
   //        $("#box").stop(false,true);
  //         $("#box").stop(true,false);
             $("#box").stop(true,true);
            }); 
        });

6.jQuery事件

  • 绑定事件 : bind(type,[data,]function(){}); 类型,参数(可为空),函数

    •            $("#inspur").bind("mouseover",function(){
                      $("div").show(2000);
                  });
                  $("#inspur").bind("mouseout",function(){
                      $("div").hide(200);
                  });    */
      
       // $("#inspur").mouseover(function(){
       //     $("div").show(2000);
      // });
      
  • 合成事件 : 多个事件合成一个 hover() : mouseenter 和 mouseleave

    •            //合成事件  :多个事件合成一个  hover(): mouseenter 和 mouseleave
                  $("#inspur").hover(function(){
                      $("div").show(2000);
                  },function(){
                      $("div").hide(2000);
                  }); 
      
  • 事件冒泡:

    • 阻止冒泡事件的发生:stopPropagation()

    • 阻止默认事件的发生:preventDefault()

    •            $("span").click(function(){
                      alert("span元素被点击");
                      //阻止冒泡事件的发生:stopPropagation()
                      e.stopPropagation();
                      //阻止默认事件的发生:preventDefault()
                      e.preventDefault();
                  });
      
  • 移除事件

       $(function(){
            $("#btn1").click(fn1 = function(){
                var txt = $("#msg").html()+"<p>按钮一被点击</p>";
                $("#msg").html(txt);
            });

            $("#btn2").click(fn2 = function(){
                var txt = $("#msg").html()+"<p>按钮二被点击</p>";
                $("#msg").html(txt);
            });

            $("#unbind").click(fn1 = function(){
 //               $("button").unbind();  //表示删除所有的绑定事件
  //               $("button").unbind("mouseover");  //指定事件类型
                $("button").unbind("click",fn2); //指定相应的函数
            });
        });

load函数的作用

1.load函数的作用是,从server获取数据,而且把数据放到指定的元素(通常是div元素)中。

2.说的再具体一些就是,把获取到的数据插入到当前文档的某个div元素中。


7.jQuery中的Ajax应用(返回随机数)

  $(function(){
        $("#btn").click(function(){
            $.get("RandTest",function(data){
               alert(data);
            });
        });
   });

RandTest.java:

public void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {

	//1.产生随机数
	Random ran = new Random();
	//2.
	int num = ran.nextInt(100);
	//3.
	System.out.println(num);
	//4.将随机数发送到浏览器
	response.getWriter().print(num);
}

相关方法

 <script type="text/javascript">
  	$(function(){
  		$("#btn").click(function(){
  			$.ajax({
  				url:"RandomTest",
  				type:"post",
  				beforeSend:function(){
  					$("img").show();
  				},
  				success:function(data){
  					alert(data);
  				},
  				error:function(){
  					alert("支付失败!");	
  				},
  				complete:function(){
  					$("img").hide();
  				}
  			});	
  		});	
  	});
  </script>
  <style type="text/css">
  	img{
  		display: none;
  	}
//模拟网速慢的情况
				try {
					
					 //1.产生随机数
					Random ran = new Random();
					//2.
					int num = ran.nextInt(100);
					//3.
					System.out.println(num);
					//4.将随机数发送到浏览器
					response.getWriter().print(num);

                                        Thread.sleep(5000);
					
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
  JQAjax02 JQAjax03 JQAjax04 JQAjax05 JQAjax06
posted @ 2021-02-16 12:41  李海家  阅读(97)  评论(0编辑  收藏  举报