Jquery技术

Jquery技术

一、Jquery基础

1.1、Jquery简介

jQuery由美国人John Resig于2006年创建
jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装
它的设计思想是write less,do more

jQuery官网: http://jquery.com

1648649398360

1.2、初识Jquery应用

1648648744061

$("tr:even").css("background-color","#e8f0f2");

1.3、jQuery能做什么

1. 访问和操作DOM元素
2. 控制页面样式
3. 对页面事件进行处理
4. 扩展新的jQuery插件
5. 与Ajax技术完美结合

jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发效率

1.4、jQuery优势

1. 体积小,压缩后只有100KB左右
2. 丰富而强大的选择器
3. 出色的DOM封装
4. 可靠的事件处理机制
5. 出色的浏览器兼容性
6. 使用隐式迭代简化编程
7. 丰富的插件支持

1.5、jQuery库文件

Jquery库文件分为开发版和发布版:

1648649542694

如何引入Jquery库文件:

<script src="js/jquery-1.12.4.js" type="text/javascript"></script>

二、Jquery基本语法

2.1、使用jQuery弹出提示框

<script>
     $(document).ready(function() {
        alert("我欲奔赴沙场征战jQuery,势必攻克之!");
    });
</script>

$(document).ready()与window.onload类似,但是也有区别

1648652371147

2.2、jQuery语法结构

1648652491662

工厂函数$():将DOM对象转化为jQuery对象
选择器 selector:获取需要操作的DOM 元素
方法action():jQuery中提供的方法,其中包括绑定事件处理的方法

2.3、Jquery操作页面元素

2.3.1、addClass( )添加样式

jQuery 对象.addClass([样式名]);

2.3.2、css( )元素样式

css("属性","属性值") ;
css({"属性1":"属性值1","属性2":"属性值2"...}) ;

2.3.3、设置元素的显示和隐藏

$(selector).show( );
$(selector).hide( );

演示案例:【仿京东左侧菜单】

1648655898177

2.4、Jquery代码风格

“$” 等同于 "Jquery"

$(document).ready()=jQuery(document).ready()
$(function(){...})=jQuery (function(){...})      

链式操作

对一个对象进行多重操作,并将操作结果返回给该对象

$("h2").css("background-color","#ccffff").next().css("display","block");

隐式迭代

 $(document).ready(function() {
     $("li").css({"font-weight":"bold","color":"red"});
 });

三、DOM对象和jQuery对象

3.1、DOM模型

浏览器把HTML文档的元素转换成节点对象,所有节点组成了一个树状结构

1648653751149

3.2、DOM对象和jQuery对象

DOM对象:直接使用JavaScript获取的节点对象
var objDOM=document.getElementById("title"); 
var objHTML=objDOM.innerHTML;  
jQuery对象:使用jQuery包装DOM对象后产生的对象,它能够使用jQuery中的方法
$(“#title”).html( );  等同于  document.getElementById("title").innerHTML; 

注意!

DOM对象和jQuery对象分别拥有一套独立的方法,不能混用。

3.3、DOM对象转jQuery对象

使用$()函数进行转化:$(DOM对象)

var txtName =document.getElementById("txtName");   ---DOM对象
var $txtName =$(txtName);  ---Jquery对象

注意!

jQuery对象命名一般约定以$开头。

3.4、jQuery对象转DOM对象

jQuery对象是一个类似数组的对象,可以通过[index]的方式得到相应的DOM对象

var $txtName =$ ("#txtName"); 
var txtName =$txtName[0]; 
通过get(index)方法得到相应的DOM对象

var $txtName =$("#txtName"); 
var txtName =$txtName.get(0);       

四、Jquery选择器

jQuery选择器类似于CSS选择器,用来选取网页中的元素
jQuery选择器功能强大,种类也很多,分类如下:
  1. CSS选择器选取元素
    • 基本选择器
    • 层次选择器
    • 属性选择器
  2. 过滤选择器选择元素
    • 基本过滤选择器
    • 可见性过滤选择器

4.1、CSS选择器选取元素

基本选择器包括标签选择器、类选择器、ID选择器、并集选择器和全局选择器

1648654780027

演示案例:【基本选择器】

层次选择器通过DOM 元素之间的层次关系来获取元素

1648654813155

演示案例:【层次选择器】

属性选择器通过HTML元素的属性来选择元素

1648654918153

1648654939770
演示案例:【属性选择器】

4.2、过滤选择器选择元素

过滤选择器: 就是通过特定的过滤规则来筛选出所需的元素

主要分类:
基本过滤选择器
可见性过滤选择器
表单对象过滤选择器

基本过滤选择器

1648655198619

1648655223368

演示案例:【基本过滤选择器】

可见性过滤选择器 :通过元素显示状态来选取元素

1648655463757

1648655520027

演示案例:【可见性过滤选择器】

五、Jquery事件

5.1、鼠标事件

1648658025207

5.2、表单事件

1、focus() 获得焦点,适用于所有元素
2、blur() 失去焦点,适用于所有元素
3、change() 当内容改变时触发 只适用于 input textarea select
4、select() 选中元素中的文本内容时触发 只适用于 input type="text" textarea
5、submit() 当用户试图提交表单时触发,只能绑定在form

六、Jquery操作DOM

6.1、样式操作

  • css( )获取和设置样式
  • addClass( )追加样式
  • removeClass( )移除样式

6.2、内容操作

  • html( )代码操作(文本内容和html元素)

  • text( )内容操作(只关心文本内容)

  • val( )属性值操作

6.3、属性操作

  • attr( )获取和设置元素属性

  • removeAttr( )删除元素属性

七、表单验证

7.1、表单选择器

表单选择器用于选取某些特定的表单元素,比如所有单选按钮或隐藏的元素

1648739423042

1648739469563

演示案例:【表单选择器】

表单属性过滤选择器

1648739511444

演示案例:【表单过滤选择器】

7.2、验证实例

使用String 对象验证邮箱

实现思路:
使用val( )方法获取文本框的值
使用indexOf() 来判断字符串是否包含“@”和“.”,并且保证@是在.之前的位置
使用方法submit( )提交表单
根据返回值是true还是false来决定是否提交表单

1648739901485

$(document).ready(function(){
	$("form").submit(function(){
		var mail = $("#myform :text").val();
		if (mail=="") {//检测Email是否为空
			alert("Email不能为空");
			return false;
		}
		if (mail.indexOf("@") == -1) {
			alert("Email格式不正确\n必须包含@");
			return false;
		}
		if (mail.indexOf(".") == -1) {
			alert("Email格式不正确\n必须包含.");
			return false;
		}
		return true;
	})
})

演示案例:【验证休闲网登录页面】

文本框内容的验证
需求:
1、密码必须要填写,并且保证密码长度至少是6位;
2、重复的密码和设置的密码要保持一致;
3、姓名必须要填写,并且不能包含数字;

实现思路:
使用String对象的length属性验证密码的长度
验证判断两次输入密码是否一致
使用length属性获取文本长度,再使用for循环和substring( )方法依次截断单个字符,最后判断每个字符是否是数字

1648740344315

  var pwd = $("#pwd").val();
    if (pwd == "") {
       alert("密码不能为空");
          return false;
    }
    if (pwd.length < 6) {
        alert("密码必须等于或大于6个字符");
          return false;
    }

    var repwd = $("#repwd").val();
    if (pwd != repwd) {
            alert("两次输入的密码不一致");
             return false;
    }

    var user = $("#user").val();
    if (user == "") {
        alert("姓名不能为空");
       return false;
    }

    "admin"
    for (var i = 0; i < user.length; i++) {
          var j = user.substring(i, i + 1);
          if (isNaN(j) == false) {
              alert("姓名中不能包含数字");
              return false;
          }
    }

注意!

isNaN(参数):判断参数是否是一个数字,返回的是一个boolean类型;

演示案例:【体闲网注册验证】

文本输入提示特效

实现思路
把错误信息显示在<span>中,然后使用html()方法,设置<span>和</span>之间的内容
编写脚本验证函数
鼠标失去焦点时(blur事件)调用验证函数

1648741240685

演示案例:【文本输入提示特效】

正则表达式验证邮政编码和手机号码

中国的邮政编码都是6位
手机号码都是11位,并且第1位都是1

var regCode=/^\d{6}$/;
var regMobile=/^1\d{10}$/;

1648741756863

演示案例:【验证邮编和手机号码】

验证年龄

对年龄进行验证,年龄必须在0-120之间
[0--9]   \d  
[10--99]  [1-9] \d 
[100-120]--- 不能全部按照三位数的格式来进行定义
   [100-119] :  1[0-1]\d 
   120

0-9这个范围是一位,正则表达式为\d
10-99这个范围都是两位数,正则表达式为[1-9]\d
100-119这个范围是三位数,正则表达式为1[0-1]\d
所有年龄的个位都是0-9,当百位是1,十位是0-1,正则表达式为(1[0-1]|[1-9])?\d
年龄120是单独的一种情况,需要单独列出来

var  reg = /^......$/;
reg.test(数据)
函数的结果是boolean类型:  true(匹配成功) 、 false(匹配失败)。

注意!

在正则对象中有一个方法经常使用: reg.test(数据) ,检验数据是否匹配这个正则格式,返回的是boolean类型。

演示案例:【验证年龄】

八、Jquery实现Ajax

8.1、Jquery实现Ajax简介

jquery 库中已经封装了ajax请求的方法。

jquery.ajax([settings])。发请求并且能得知成功还是失败。

type:类型,"POST"或者"GET",默认是"GET"。
url:发送请求的地址。
data:是一个对象,连同请求发送到服务器的数据
dataType:预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包含的MIME信息来智能判断,一般我们采用json个数,可以设置为"json"。
success:是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串。
error:是一个方法、请求失败时调用此函数。传入XMLHttpRequest对象。

8.2、实现Get请求

$(document).ready(function(){
    $("#searchBtn").click(function(){
        $.ajax({
            type:"GET",
            url:" https://api.passport.xxx.com/checkNickname?username="+mylogin.username+"&token="+mylogin.token+"&nickname="+nickname+"&format=jsonp&cb=?",
            dataType:"json",
            success:function(data){
               //data就是从服务器端获取到的数据
            },
            error:function(jqXHR){
                console.log("Error: "+jqXHR.status);
            }
        });
    });
});

注意!

在实现get请求的过程中,进行参数的传递使用的是url地址后面进行附加形式。

8.3、实现Post请求

function dologin(qrid,username,token){
    $.ajax({
        url:"http://api.passport.pptv.com/v3/login/qrcode.do",
        type:"post",
        dataType:"jsonp",
        data:{from:"clt",qrid:qrid,username:username,token:token},
        success:function(data){
             //data就是服务器端返回的数据信息
        }
    });
}

注意!

针对POST请求,我们是通过data属性以对象的形式来进行参数的传递。

8.4、总结

在使用Jquery实现Ajax请求的时候需要注意的地方:

1、针对get形式的请求,我们传递参数是在url地址后面进行附加;

2、针对post形式的请求,使用的是data以对象的形式进行传递;

3、dataType指定的是服务器端返回的结果的预期类型,如果非json格式,建议大家不写(智能匹配),如果是json格

   式建议写上json格式的指定;
   
4、如果dataType指定的是json格式,那么直接在success函数中返回的就是一个json对象;   
posted @ 2024-04-19 14:58  疏影橫斜水清淺  阅读(15)  评论(0编辑  收藏  举报