jQuery

jQuery

1.简介

  • 什么是jQuery :
    • JavaScript和查询query 就是辅助JavaScript开发的js类库.
  • 核心思想:
    • write less, do more. 写的更少做的更多.所以实现很多浏览器的兼容问题
  • jQuery流行程度
    • 已成为最流行的JavaScript库
  • 好处:
    • 免费开源,轻量级

2.jQuery之helloword

	<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
	<script type="text/javascript">
	/*	window.onload = function () {
			var elementById = document.getElementById("btnId");
			elementById.onclick = function () {
				alert("原生js绑定事件");
			}
		}*/
		$(function () {
			// 1 通过id获取标签对象
			var $btnId = $("#btnId");
			// 2 绑定单击事件
			$btnId.click(function () {
				alert("jQuery的单击事件");
			});
		});

	</script>
</head>
<body>
	<button id="btnId">SayHello</button>
</body>

3.jQuery核心函数

$ 是jQuery的核心函数,能完成jQuery的很多功能$() 就是调用这个函数.
  • 传入参数是 函数时
    • 作用:window.onload的作用
    $(function){}页面加载完成类似于 windom.onload = function(){}
    
    	1 传入函数时; $(function() {})
    		作用:类似 window.onload的作用
    		 window.onload与$(fn)
    		 	1.执行时机
    				前者: 当前文档[完全加载]	后执行
    		 		后者: 当前文档[绘制完成]  后执行
    		 	2.当前文档中书写的次数
    		 		前者: 只能书写一次  [多些不会报错,后面会直接覆盖]
    		 		后者: 可以多次
    		 	3.语法结构
    		 		前者:只有一种
    		 		后者:有两种语法
    			$(function () {
    					alert("jQuery第一种写法");
    			});
    				
    			$(document).ready(function () {
    					alert("jQuery第二种写法");
    			})
    
  • 传入参数为[HTML]字符串时候
    • 作用:选择器
    $("#btn");    // 根据id属性查找标签对象
    $("button");  // 根据标签名进行查找
    $(".classA"); // 根据给定的class属性查找标签对象
    
  • 传入参数为[选择器参数的时候]
    • 作用:创建元素节点
    	$(function () {
    		// 获取元素节点
    		var $li = $("<li>印度</li>");
    		// 把$li 添加到最后
    		var append = $("#city").append($li);
    
    	});
    
    
    	</script>
    
    </head>
    <body>
    	<ul id="city">
    		<li id="bj">北京</li>
    		<li>上海</li>
    		<li>东京</li>
    		<li>首尔</li>
    	</ul>
    
  • 传入参数为[DOM对象]时:
    • 那么会把dom对象转换为jQuery对象.
    4.传入参数为DOM对象时 : $(DOM对象)
    	作用:将DOM转换为jQuery
    		如何区分DOM和jQuery对象?
    		 观察alert(对象)的结果
    		 	结果:object Object,是jQuery
    		 		object HTMLXXX, 是DOM对象
    
    		 window.onload = function () {
    			var elementById = document.getElementById("city");
    			 alert(elementById);
    		}
    
    		var $city = $(elementById);
    		alert($city);
    		 
    		 
    
  
 4.jQuery和dom对象区分以及转换

-区分

​```JavaScript
    Dom对象
        1.通过getElementById()查询出来的标签对象是Dom对象
        2.通过createElement() 方法创建的对象,是Dom对象

        dom对象的特点是 => [object HTMLButtonElement]



    jQuery对象
        3.通过JQuery提供的API创建的对象,是JQuery对象
        4.通过JQuery包装的Dom对象,也是JQuery对象
        5.通过JQuery提供的API查询到的对象,是JQuery对象

        jQuery对象的特点是 : ==>> [object Object]


 为什么需要将DOM与JQuery进行转换:?
	  答: 两者DOM和jQuery 无法调用对象属性和方法,
          如果需要调用对方的属性或方法时,需要类型转换
		
		   	DOM对象转化为jQuery对象
		   		$(DOM对象)
		 
		   	jQuery对象和DOM对象
		       将jQuery看作为数组集合[记忆技巧][jQuery本质是伪装数组实现]	
		    	$div[0]
		    	$div.get[0]	
		 
  • 转换
    <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
    
    	$(function () {   // 表示页面加载完成之后
    		// 使用DOM对象调用DOM方法
    		// 通过id查找标签对象,并绑定单击事件
    		$("#dom2dom").click(function () {
    			// 通过id获取标签对象
    			var elementById = document.getElementById("testDiv");
    			// 调用innerText方法
    			alert(elementById.innerText);
    		});
    
    		// 使用jQuery对象调用jQuery方法
    		$("#jQuery2jQuery").click(function () {
    			var $testDiv = $("#testDiv");
    			alert($testDiv.text());
    		});
    
    		// 使用DOM对象调用jQuery方法
    		$("#dom2jQuery").click(function () {
    			var elementById = document.getElementById("testDiv");
    			alert($(elementById).text())
    		});
    
    
    		// 使用jQuery对象调用DOM方法
    		$("#jQuery2dom").click(function () {
    			var $testDiv = $("#testDiv");
    			// alert($testDiv.get(0).innerText);
    			alert($testDiv[0].innerText);
    		});
    
    	});
    
    </script>
    </head>
    <body>
    	
    	<div id="testDiv">Atguigu is Very Good!</div>
    	
    	<button id="dom2dom">使用DOM对象调用DOM方法</button>
    	<button id="dom2jQuery">使用DOM对象调用jQuery方法</button>
    	<button id="jQuery2jQuery">使用jQuery对象调用jQuery方法</button>
    	<button id="jQuery2dom">使用jQuery对象调用DOM方法</button>
    
    </body>
    
  • dom对象转化为jQuery对象(*重点)
    • 先有dom对象
    • $( dom对象 ) ===>>> jQuery对象
  • jQuery对象转为dom对象(*重点)
    • 先有jQuery对象
    • 通过下标获取dom对象 jquery对象[下标] 得到 dom对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LJdK2v1E-1608425582804)(file:///C:\Users\psd\AppData\Local\Temp\ksohtml15328\wps3.jpg)]

5.jQuery选择器

  • 基本选择器
     id : 				            根据id进行筛选
     .class :                       根据class进行筛选
     element:                       根据标签进行筛选
     *                              所有元素
     select1,select2,               并集选择器(组合选择器)
    
  • 层及选择器
    层级选择器:
    ancestor descendant  :		 后代选择器
    parent > child       :	     子代选择器  并且它是第一个选择器								的子元素
    prev + next          : 		 相邻选择器[]
    prev ~ siblings      :       兄弟[同辈]选择器[]
    
  • 过滤选择器
    :first        		  	   	 选择第一个元素
    :last         				 选择最后一个元素
    :not(selector)    			 选出不是selector的元素
    :even        			  	 索引偶数选择器,从 0 开始计数
    :odd      				   	 索引奇数
    :eq(index)    				 索引等于index的元素 
    :gt(index)       			 索引大于index的元素
    :lt(index)        			 索引小于index的元素
    :header      				 选择h1等这些标题元素
    :animated     				 选择正在执行动画的元素
    
  • 内容过滤器
    :contains(text)				  匹配包含给定文本的元素
    :empty						  匹配所有不包含子元素或者文本的空元素
    :parent						  匹配有子元素或文本内容的元素
    :has(selector)   			  匹配含有选择器所匹配的元素的元素
    
  • 可见选择器
    :hidden   					   所有隐藏的元素
    :visible 					   所有可见元素
    
  • 属性与子元素过滤器
    	属性
    [attribute] 			包含attribute属性的元素
    [attribute=value] 		attribute属性值等于value的元素       name="username"
    [attribute!=value] 		attribute属性值不等于value的元素 
    [attribute^=value] 		attribute属性的value值以value开头的
    [attribute$=value] 		attribute属性的value值以value结尾
    [attribute*=value] 		attribute属性的value值包含value的
    [attrSel1][attrSel2][attrSelN]  同时满足[]里的所有条件的元素
    	子元素
    :nth-child(index)		获取第index个元素。注意index不同于eq(index),这里从1开始				
    :first-child			匹配每一组父元素中的子元素中的第一个,与:first有不同
    :last-child				匹配每一组父元素中的子元素中的最后一个,与:last有不同
    :only-child				如果某个元素是父元素中唯一的子元素,那将会被匹配
    
  • 表单及表单对象属性过滤器
    	表单
    	:input 		选择所有的input框
    	:text 		选择所有的text框
    	:password 	选择所有的password框
    	:radio 		选择所有的radio框
    	:checkbox 	选择所有的checkbox框
    	:submit 	选择所有的submit
    	:image 		选择所有的image
    	:reset 		选择所有的reset框
    	:button 	选择所有的button按钮
    	:file 		选择所有的文件筐
    	:hidden 	选择所有的隐藏域
    
    	表单对象的属性
    	:enabled 		可用的
    	:disabled 		不可用的
    	:checked 		选择的,checkbox或者单选按钮的选择  复选框、单选框等,不包括select中的option
    	:selected 		选择的,下拉列表的选择  匹配所有选中的option元素
    
    • 案例:对多选框里面的内容进行遍历
      //4.获取多选框选中的内容
      $("#btn4").click(function(){
      
      	// 方式一: 获取多选框选中的内容
      	// 获取选中的复选框
      	var $checkbox = $(":checkbox:checked");
      	// 进行遍历
      	for (var i = 0;i < $checkbox.length;i++) {
      		alert($checkbox[i].value);
      	}
      
      	// 方式二:
      	// each()  可以遍历jQuery中的每一个元素
      	// 有几个元素.each(function)就遍历几次
      	// 在each遍历function函数中,有一个this对象,这个this对象就是当前的dom对象
      					$(":checkbox:checked").each(function () {
      			alert(this.value);
      	});*/
      
      
      
      					
      
    • 案例:获取下拉框里面的内容
      //5.获取下拉框选中的内容
      $("#btn5").click(function(){
      
      
      	// 方式一: 获取下拉列表锁选中的内容
      	 var $select = $("select option:selected");
      	// 进行each(function())进行遍历
      		 $select.each(function () {
      			alert(this.value);
      	 });
      
      
      	// 方式二: 先获取选中的option标签
      	var $option = $("option:selected");
      	 // 遍历每一个option标签获取中间的文本
      		$option.each(function () {
      	// 在each遍历的function函数中,有一个this对象.
      	// 这个this对象是当前正在遍历到的dom对象
      			alert(this.innerText);
         });
      });
      

6.jQuery的属性操作

  • html : 它可以设置和获取起始标签和结束标签里面的内容 innerHTML功能一样
    含有HTML
  • text() : 它可以设置和获取起始标签和结束标签里面的文本 innerText功能一样
  • val() : 可以设置和获取表单项的value属性值
    • val 方法同时设置多个表单项的值(值决定选中的状态)示例代码(案例2):
    案例1:
     $(function () {
                // html()	它可以设置和获取起始标签和结束标签中的内容			innerHTML功能一样
                // html 不传参数就是获取
                // var html = $("<div>1</div>").html();
                // alert(html);
                // 传递参数就是设置 >标题1</h1>");
                // var html = $("div:first").html("<h1>标题1</h1>");
    
                // text()	它可以设置和获取起始标签和结束标签中的文本   innerText 功能一样
                var text = $("div:eq(1)").text();
                // alert(text);
    
                $("div:eq(1)").text("<h1>标题1</h1>");
    
                // 给按钮绑定单击事件
                $("button").click(function () {
                    // val()   可以设置和获取表单项的value属性值
                    // 不传递参数就是获取输入框里面的内容
                    var val = $(":text").val();
                    alert("输入框里面的内容是:" + val);
                    // 传递参数就设计输入框里面的内容
                    $(":text").val("设置");
                });
            })
    
        </script>
    </head>
    <body>
    
    
            <div>1</div>
            <div>2
                <div>1</div>
            </div>
    
            <input type="text">
            <button>按钮</button>
    
    </body>
    
    案例2:
    <script type="text/javascript">
            $(function () {
    /*            // 设置单选框被选中
                // 匹配所有单选按钮
                $(":radio").val(["radio2"]);
                // 设置复选框被选中
                $(":checkbox").val(["checkbox1","checkbox2","checkbox3"]);
                // 设置多选的下拉框
                $("#multiple").val(["mul3","mul4"]);
    
                // 设置单选的下拉框
                $("#single").val(["sin3"]);*/
                // val 方法同时设置多个表单项的值( 值决定选中状态 )示例代码:
                $(":radio,:checkbox,#multiple,#single").val(["radio2","checkbox2","checkbox3","mul2","mul4","sin2"]);
            });
    
        </script>
    </head>
    <body>
            单选:
            <input name="radio" type="radio" value="radio1" />radio1
            <input name="radio" type="radio" value="radio2" />radio2
            <br/>
            多选:
            <input name="checkbox" type="checkbox" value="checkbox1" />checkbox1
            <input name="checkbox" type="checkbox" value="checkbox2" />checkbox2
            <input name="checkbox" type="checkbox" value="checkbox3" />checkbox3
            <br/>
    
            下拉多选 :
            <select id="multiple" multiple="multiple" size="4">
                <option value="mul1">mul1</option>
                <option value="mul2">mul2</option>
                <option value="mul3">mul3</option>
                <option value="mul4">mul4</option>
            </select>
            <br/>
    
            下拉单选 :
            <select id="single">
                <option value="sin1">sin1</option>
                <option value="sin2">sin2</option>
                <option value="sin3">sin3</option>
            </select>
    </body>
    

7.jQuery的属性操作

  • attr():设置和获取属性的值
    • (不推荐操作 checked , selected , readOnly , disable 这类操作)
  • prop():设置和获取属性的值
    • (推荐操作 checked , selected , readOnly , disable 这类操作)
    • attr() 和 prop()区别:

       $(function () {
        // 一个参数,属性名,是获取
        // var attr = $(":checkbox:first").attr("name");
         // alert(attr);  // checkbox1
      
         var attr = $(":checkbox:first").prop("checked");
          alert(attr);
      
           // 两个是设置  一个是参数名,一个是参数值
           // var attr = $(":checkbox:first").attr("name","abc");
                  // alert(attr)
      
          // var prop = $(":checkbox:eq(1)").prop("checked",true);
             // alert(prop);
      
             // $(":checkbox:eq(2)").attr("abc","168888");
      
      /*
      *attr() 设置和获取属性的值
      (不推荐操作 checked,selected,readOnly,disable,等这类属性)       它们返回的是true和false
           *attr 方法它可以设置非标准属性的(自定义属性)
      *prop() 设置和获取属性的值(只推荐操作 checked,selected,readOnly,disable,等这类属性)
                   
       */
      
      
              });
          </script>
      </head>
      <body>
          多选:
          <input name="checkbox1"  type="checkbox" value="checkbox1" />checkbox1
          <input name="checkbox2" type="checkbox" value="checkbox2" />checkbox2
          <input name="checkbox3" type="checkbox" value="checkbox3" />checkbox3
          <br/>
      </body>
      
  • jQuery操作元素【标签】节点
      • 内后 :

        • append(): a. append(b) : ab

        • appendTo(): a.appendTo(b) : ba

      • 内前:

        • prepend()
        • prepentdTo()
      • 外后:

        • after()
        • insertAfter()
      • 外前:

        • before()
        • insertBefore()
      • empty() : 删除匹配的子元素[掏空]
      • remove() : 删除匹配元素
      • replaceWith() : a.replayWith(b) 用b 替换a
      • replaceALl() : a.replaceALl(b) 用a替换b全部
      • first()
      • last()
      • eq() : 匹配指定索引
      • filter : 筛选出与指定表达式匹配的元素集合。
      • children():匹配子代元素节点
      • find():匹配后代元素节点
      • parent():匹配父一代元素节点
      • parents():匹配祖先元素节点
      • next():匹配下一个元素节点
      • prev():匹配上一个元素节点
      • siblings():匹配兄弟【上下】元素节点
  • jQuery操作CSS样式表:
    • addClass() : 添加样式

    • removeClass() : 删除样式

    • toggleClass() : 有就删除,没有就添加

    • offset() : 获取和设置元素的坐标位置

      <title>Insert title here</title>
         <!--
            设置css 样式:
         -->
         <style type="text/css">
            .bg_c{
               background: #aaaaaa;
            }
         </style>
      <script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
      <script type="text/javascript">
         $(function(){
            // 给文本框绑定change事件
            $("#username").change(function () {
               var username  = $(this).val();
               if (username == "wzg168"){
                  // alert("用户名已存在");
                  $("#unMsg").html("<b>用户名已存在</b>").css("color","#f00");
               } else {
                  // alert("用户名可用");
                  $("#unMsg").html("<b>可用</b>").css("color","#0f0");
               }
            });
      
            $("#myDiv").mouseover(function () {
               $(this).addClass("bg_c");
            }).mouseout(function () {
               $(this).removeClass("bg_c");
            });
      
         });
      </script>
      </head>
      <body>
         <form action="">
            用户名:<input type="text" name="username" id="username">
            <span id="unMsg"></span>
      
            <br>
            密码:<input type="password" name="pwd"><br>
            <input type="submit">
      
         </form>
      
         <br>
            <!--
               测试mouseover 和 mouseout 事件
            -->
            <div id="myDiv" class>
               测试mouseover 和 mouseout
            </div>
      </body>
      
  • jQuery常用事件:
    • ready(function) : 当前文档绘制完成之后执行[触发函数]
    • click(function) : 单击事件
    • live(“事件名”,function) : 事件委派
      • jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效
    • delegate(“选择器”,“事件名”,function) ; live 的升级版
    • change(function) : 文本改变且失去焦点事件
    • mouseover() : 鼠标移入[悬停]事件
    • mouseout() : 鼠标移除事件

8.正则表达式

8.1为什么使用正则表达式
  • 传统方式验证表单中数据时,只可验证基本的非空规则。如验证较复杂规则,代码难度及代码负责较大。固使用正则。
8.2正则概述
  • 就是验证一组数据的规则
8.3正则语法
  • var reg = /规则/;
  • var reg = /1/
  • {n}:匹配n次
  • {n,} : 匹配至少n次【>=n】
  • {n,m}:匹配至少n次,最大m次【n<=index<=m】
7.4正则中特殊规则
  • 特殊字符
    • \d, 等价于[0,9]
    • \w, 等价于[a-zA-Z0-9_]
    • . , 等价于除\n之外的任意字符
  • 特殊次数
    • *, 等价于{0, }
    • +, 等价于{1, }
    • ?, 等价于{0,1 }
  • 常用正则规则
    • var reg = var reg = /2+(.[a-z\d]+)*@([\da-z](-[\da-z])?)+(.{1,2}[a-z]+)+$/ //邮箱

  1. 规则 ↩︎

  2. a-z\d ↩︎

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值