jQuery知识点

2021-01-22 20:12

阅读:441

标签:lock   字符   透明   jquery事件   除了   转换   range   check   构造函数   

一.  jQuery基础及选择器

1.补充:
             jQuery是js的类库
         (1)jQuery的设计思想:write less,do more
         (2)jQuery的优势:
                     1》体积小     2》强大的选择器       3》出色的DOM封装 
                     4》可靠的事件处理机制     5》出色的浏览器兼容性
 2.在页面中引入jQuery
   
3.ready()方法
   《1》 使用jQuery弹出提示框
    eg:
   《2》window.onload与$(document).ready()类似,但也区别:
                   window.onload                             $(document).ready()
                 必须等待网页中所有的内容            网页中所有DOM文档结构绘制完毕后即刻执行,可能
执行时机   加载完毕后(包括图片、flash、       与DOM元素关联的内容(图片、flash、视频等)
                 视频等)才能执行                             并没有加载完
 编写个数  同一页面不能同时编写多个             同一个页面能同时编写多个
 简化写法               无                                                     $(function(){ //执行的代码});

4.jQuery语法规则
     (1)工厂函数$():将DOM对象转化为jQuery对象
   (2)选择器selector:获取需要操作的DOM元素
   (3)方法action():jQuery中提供的方法,其中包括绑定事件处理的方法
  语法:$(selector).action();
5.jQuery操作页面元素
    (1)使用addClass()方法为元素添加样式
             语法:jQuery  对象.addClass([样式名]);
              eg:$("tr:odd").addClass("odd");
    (2)使用css()方法设置元素样式
            语法:
           css("属性","属性值");【设置一个css属性】
           css({"属性1":"属性值1","属性2","属性值2"....});【同时设置多个css属性】
           eg:$(this).css({"background":"#c81623"});
    (3)使用show()、hide()方法设置元素的显示和隐藏
              语法:
                        $(selector).show();
                        eg: $(this).children("div").show();
                      $(selector).hide();
                        eg:$(this).children("div").hide();

6.jQuery代码风格
     (1)"$"等同于"jQuery"
               eg:$(document).ready()等同于jQuery(document).ready()
                    $(function(){...})等同于jQuery (function(){...})
     (2)链式操作:对一个对象进行多重操作,并将操作结果返回给该对象
         eg:
               $("h2").css("background-color","#ccffff").next().css("display","block");
      (3)隐式迭代 
              eg:
                      $(document).ready(function() {
                     $("li").css({"font-weight":"bold","color":"red"});
                     });
总结:1)DOM对象:直接使用JavaScript获取节点对象
           2)jQuery对象:使用jQuery包装产生的能够使用jQuery中的方法对象
           3)DOM对象转jQuery对象:使用$(DOM对象)
                eg:var txtName=document.geElement("txtName");
                        var $txtName=$(txtName);
           4)jQuery对象转DOM对象:
                      方法1:通过index的方法得到相应的DOM对象
                      方法2:通过get(index)方法得到相应的DOM对象
7.jQuery选择器分类
    (1)基本选择器
            eg:$("h1").css("color", "blue");   //标签选择器
                    $(".price").css({"background":"#efefef","padding":"5px"});  //类选择器
                    $("#author").css("clor", " #083499");  //id选择器
                    $(".intro,dt,dd").css("color", " #ff0000");  //并集选择器
                    $("*").css("font-weight", "bold");  //全局选择器
    (2)层次选择器
             eg:
                   $(".textRight p").css("color","red");  //后代选择器
                   $(".textRight>p").css("color", "red");  //子选择器
                   $("h1+p").css("text-decoration", "underline");  //相邻元素选择器
                   $("h1~p").css("text-decoration", "underline");   //同辈元素选择器
    (3)属性选择器
             eg:
                     $("#news a[class]").css("background","#c9cbcb");//a标签带有class属性
                     $("#news a[class=‘hot‘]").css("background", "#c9cbcb"); // class为hot
                     $("#news a[class!=‘hot‘]").css("background", "#c9cbcb");// class不为hot
                     $("#news a[href^=‘www‘]").css("background","#c9cbcb");//以www开头
                     $("#news a[href$=‘html‘]").css("background", "#c9cbcb");//以html结尾
                     $("#news a[href*=‘k2‘]").css("background","#c9cbcb"); //包含"k2"的元素
  (4)基本过滤选择器
     :eq(index): 选取索引等于index的元素(index从0开始)

              eg:$("li:eq(1)" )选取索引等于1的

  • 元素
         :gt(index) :选取索引大于index的元素(index从0开始)

                  eg: $("li:gt(1)" )选取索引大于1的

  • 元素(注:大于1,不包括1)
         :lt(index): 选取索引小于index的元素(index从0开始) 

                 eg:$("li:lt(1) " )选取索引小于1的

  • 元素(注:小于1,不包括1)
         :header :选取所有标题元素,如h1~h6 $(":header" )选取网页中所有标题元素
         :focus 选取当前获取焦点的元素 $(":focus" )选取当前获取焦点的元素
         :animated 选择所有动画 $(":animated" )选取当前所有动画元素
    eg:
    // 标题元素
    $(".contain :header").css({"background":"#2a65ba",…});
    // 第一个、最后一个元素
    $(".contain li:first").css({"font-size":"16px",…});
    $(".contain li:last").css("border","none");
    // 偶数、奇数元素
    $(".contain li:even").css("background","#f0f0f0");
    $(".contain li:odd").css("background","#cccccc");
    // 小于、大于某个索引值
    $(".contain li:lt(2)").css({"color":"#708b02"});
    $(".contain li:gt(3)").css({"color":"#b66302"});
    8.可见性过滤选择器
         通过元素显示状态来选取元素
            语法                描述                                    示例
           :visible         选取所有可见的元素         $(":visible")选取所有可见的元素
           :hidden        选取所有隐藏的元素         $(":hidden") 选取所有隐藏的元素
            eg:
                      $("p:hidden").show();
                      $("p:visible").hide();

    二.jQuery中的事件与动画

    1.jQuery事件(jQuery事件使对javascript事件的封装)
       jQuery中事件分类:
               基础事件:(1)鼠标事件
                                       (2)键盘事件
                                        (3)window事件
                                        (4)表单事件
                             
              复合事件:(1)鼠标光标悬停
                                       (2)鼠标连续点击
          2.鼠标事件:       
              click():单击鼠标时
              mouseover():鼠标指针移过时
              mouseout():鼠标指针移出时
              mouseenter():鼠标指针进入时
              mouseleave():鼠标指针离开时
    3.鼠标事件方法的区别:
            1》 mouseover()、mouseeter()的区别:
                相同点:鼠标进入被选元素时会触发
                不同点:鼠标在其被选元素的子元素上来回进入时:
                         触发mouseover()         不触发mouseenter()
             2》mouseout()、mouseleave()的区别
                   相同点:鼠标离开被选元素时会被触发
                   不同点:鼠标在其被选元素的子元素上来回离开时:
                         触发mouseout()、不触发mouseleave()
    4.键盘事件(用户每次按下或者释放键盘上的键时都会产生事件)
       常见的键盘事件:
          keydown():按下键盘时
          keyup():释放按键时
          keypress():产生可打印的字符时
    5.绑定事件
          (1)绑定事件使用bind()方法
                    语法:bind(type,[data],fn);
                            解释:type:事件的类型,主要包括click、mosuover、mouseout等基础事件,还有自定义事件
                                      [data]:可选函数            fn:处理函数
            (2)绑定单个事件
                          eg:
                                $(".on").bind("mouseover",function () {
                                       $(".topDown").show();
                                  });
            (3)同时绑定多个事件
                     eg:
                               $(".top-m .on").bind({
        mouseover:function () {
           $(".topDown").show();
        },
        mouseout:function () {
          $(".topDown").hide();
        }
    });

    6.移除事件
        (1)移除事件使用unbind()方法
               语法:unbind([type],[fn]);
        注意:
                   当unbind()不带参数时,表示移除所绑定的全部事件
    7.复合事件
           (1)hover():moseover与mouseout事件的组合
                语法:hover(enter,leave);
                eg:$(".top-m .on").hover(function(){
    $(".topDown").show();
              },
             function(){
     $(".topDown").hide();
             }
    );
           (2)toggle方法:
                 1>toggle()方法用于模拟鼠标连续click事件
                 语法:toggle(fn1,fn2,....fnN);
                   eg:  $("input").toggle(
            function(){$("body").css("background","#ff0000");},
             function(){$("body").css("background","#00ff00");},
              function(){$("body").css("background","#0000ff");}
        )
                2>toggle():不带参数时,相当于show()和hide()方法的作用
                     toggleClass()可以对样式进行切换
                       语法:toggle();
                            eg:$("input").click(function () {
                                         $("p").toggle();
                                         })
                       语法:toggleClass(className);
                          eg: $("input").click(function(){$("p").toggleClass("red");})
    8.toggle( )和toggleClass( )总结:
    (1)toggle( fn1,fn2...)实现单击事件的切换,无须额外绑定click事件
    (2)toggle( )不带参数时是实现对象在显示和隐藏状态之间切换
    (3)toggleClass( )实现对象在添加样式和移除样式之间切换
    9.jQuery动画效果
         1>控制元素显示与隐藏
            show():控制元素的显示   hide():控制元素的隐藏
                  语法:$(selector).show([speed],[callback]);
                             eg:  $(".topDown").show(40);
                             $(selector).hide([speed],[callback]);
                            eg:   $(".topDown").hide("fast");
                       解释:[speed]: 可选。表示速度,默认为“0”,可能值:毫秒(如1000)、slow、normal、fast
                                  [callback]:可选。show函数执行完之后,要执行的函数
          2>改变元素的透明度
                    fadeIn( )和fadeOut( )可以通过改变元素的透明度实现淡入淡出效果
                            语法:$(selector).fadeIn([speed],[callback]);
                                         eg:   $("img").fadeIn("slow");
                                       $(selector).fadeOut([speed],[callback]);
                                           eg:    $("img").fadeOut(1000);
          3>改变元素高度
                  slideDown( )可以使元素逐步延伸显示
                  slideUp( )则使元素逐步缩短直至隐藏
                     语法:$(selector).slideUp ([speed],[callback]);
                                    eg:$(".txt").slideUp(500,function () {
                                                    $(".txt").css("color","pink");
                                                   });
                               $(selector).slideDown ([speed],[callback]);
                                  eg:    $(".txt").slideDown("normal");
           4>自定义动画
                     语法:$(selector). animate({params},speed,callback);
                           {params:必须定义成动画css属性}
                         eg:$(this).animate({left: "400px", height:"200px" ,opacity: "1"}, 3000).animate({top:  "200px" , width :"200px"}, 3000 ).fadeOut("slow");

    10.动画中用法和异同
           (1)show()与hide()
                 它们的方法都是用于显示或隐藏页面中的元素
                 语法:$(selector).hide(speed,[callback])
                             $(selector).show(speed,[callback]

    三.jQuery操作DOM

      一. 1.获取元素
         语法:css(name);
                        eg: $(this).css("color");
          2.追加样式
                  语法:$(selector).addClass(class);或者$(selector).addClass(class,class2,classN);
                              eg:$("p").addClass("content  border");
          3.移除样式
                   语法:$(selector).removeClass(class);或者$(selector).removeClass(class,class2,classN);
                          eg:$("p").removeClass("content  text");
          4.toggleClass切换样式
                     语法:$(selector),toggleClass(class);
                                    eg:$("p").toggleClass("content border");
          5.hasClass()方法判断是否包含有指定样式
                  语法:$(selector).hasClass(class);
                             eg:        $("h2").mouseover(function() {
                                               if(!$("p").hasClass("content ")){
                                     $("p").addClass("content ");
                                      }
                                                  });

                                    $("h2").mouseout(function() {
                                       if($("p").hasClass("content ")) {
                                  $("p").removeClass("content ");
                                            }
                                              });
          二.内容操作
                   1.html()可以对HTML代码进行操作,相当于js的innerHTML
                         1>获取元素中html代码
                     语法:$("div.left").html();
                            2>设置元素中html代码
                      语法:$("div.left").html("

    ...
    ");
                                 eg:  $("p").html("李小佳,啊哈哈
    ");
                           注意:html()方法可以将标签自动转换为其他不会显示在文本上
                   2.text()标签内容操作可以获取或设置元素文本内容
                          1>获取元素文本内容
                 语法:$("div.left").text();
                           2>设置元素的文本内容 
                        语法:$("div.left").html("
    ...
    ");
                                   eg:  $("p").text("李小佳,啊哈哈
    ");
                            注意:text()方法只会识别文本,不会将标签转换为其他,会显示出来
                 3.html()与text()的区别:
                        html():获取指定标签中的内容(能将标签一起获取)
                        text():获取纯文本内容(不能获取标签)

           三.属性值操作
                 1.val():获取或设置元素value属性值
                       1>获取元素值
                         语法:  $(this).val();
                       2>设置元素值
                         语法:$(this).val(value);
                              eg:   $(this).val("电风扇");
           四.节点操作
              1.创建节点元素
          工厂函数$()用于获取或创建节点
                 1>$(selector):通过选择器获取节点
                 2>$(element):把DOM节点转换成jQuery节点
                 3>$(html):使用HTML字符串创建jQuery节点
              eg:
                        var $newNode=$("

  • ");
                        var $newNode1=$("
  • 你喜欢哪些冬季运动项目?
  • ");
                        var $newNode2=$("
  • 北京申办冬奥会是再合适不过了!
  • ");
             2.插入节点
                      eg: var $newNode1=$("
  • lxj
  • ");
                             var $newNode2=$("
  • lxj1
  • ");
                               $("ul").append($newNode1);
                             $("ul").prepend($newNode2);
                           var $newNode3=$("
  • lxj2
  • ");
                           var $newNode4=$("
  • lxj3
  • ");
                           $("li").after($newNode3);
                           $("li").before($newNode4);
          3.删除节点
                     1>remove():删除整个节点
                 语法:$(selector).remove([expr]);
                       eg:$(".gameList li:eq(1)").remove();
                      2>empty():清空节点内容,不会将格式删除
                语法:$(selector).empty();
                       eg:  $(".gameList li:eq(1)").empty();
          4.替换节点
                 replaceWith()、replaceAll()用于替换某个节点
                var $newNode1=$("
  • 你喜欢哪些冬季运动项目?
  • ");   
         注意:  选择到节点,然后替换我们刚才创建的节点 
                $(".gameList li:eq(2)").replaceWith($newNode1);
         注意:在创建的节点上,替换指定位置
                $ ($newNode1).replaceAll(".gameList li:eq(2)");
         5.复制节点(clone)
              语法:$(selector).clone([includeEvents]);
                      eg:  $(".gameList li:eq(1)").click(function () {
                               $(this).clone(true).appendTo(".gameList");
                                 })
                   /*如果clone值为true可以在复制的基础上还能再复制
                * 如果为false就可以复制一次*/
                           $(".gameList li:eq(2)").click(function () {
                           $(this).clone(false).appendTo(".gameList");
                                   })

         五.属性操作
         1.attr()用来获取与设置元素属性
               语法:
                         $(selector).attr([name]) ;
                               或
    $(selector).attr({[name1:value1]…[nameN:valueN]}) ;
                    eg:  $(".contain img").attr({width:"200",height:"80"});
          2.删除元素属性(removeAttr)
                    语法:$(selector).removeAttr(name) ;
                          eg:  $(".contain img").removeAttr("alt");
         六.节点遍历
              1.children()方法遍历所有子元素
            语法:$(selector).children([expr]);
                    eg:  var $section=$("section").children();
                          alert($section.length);
             2.遍历同辈元素
                   (1)next():获取相邻元素之后的元素
                          eg:$("li:eq(1)").next().addClass("orange");
                  (2)prev():获取相邻元素之前的元素
                         eg:$("li:eq(1)").prev().addClass("orange");
                  (3)slibings():获取元素前面和后面的所有同辈元素
                          eg:$("li:eq(1)").siblings().addClass("orange");
            3.遍历前辈元素
                       parent():获取父级元素
                           eg:$("li:eq(1)").parent().addClass("orange");
                        parents():获取祖先元素
                             eg:$("li:eq(1)").parents().addClass("orange");
              4.其它遍历方法
                      each():规定为每个匹配元素规定运行的函数
                    语法:$(selector).each(function(index,element));
                         eg:  $("img").click(function () {
                                $("li").each(function () {
                                var str=$(this).text()+"
    ";
                                $("section").append(str);
                                     })
                                })
                       end():结束当前链条中最近的筛选操作,将匹配元素集还原为之前的状态
                           eg:
                                 $(".contain :header").css({"background":"#2a65ba","color":"blue"});
                                 $(".gameList li").first().css("background","yellow").end().last().css("background","red");
                                $(".gameList li:last").css("border","none");
                   注意:想要在first方法后用last实现必须使用end方法将结果集返回第一个元素在进行操作

    四.表单的验证及正则表达式

           一.表单验证
      1.表单验证的好处:
       减轻服务器的压力        保证输入的数据符合要求
    2.常用的表单验证:
      日期格式
      元素是否为空
      用户名和密码
      E-mail地址
      身份证号
       二.验证表单内容
       1.用String对象验证邮箱
             eg:
             $("form").submit(function(){
      var mail = $("#myform :text").val();
    if (mail=="") {  //检测Email是否为空
    alert("Email不能为空");
    return false;
    }
          indexOf():查找某个指定字符串在首次出现的位置
    if (mail.indexOf("@") == -1) {
    alert("Email格式不正确\n必须包含@");
    return false;
    }
    if (mail.indexOf(".") == -1) {
    alert("Email格式不正确\n必须包含.");
    return false;
    }
    return true;
    })

    2.文本框内容验证
          (1).length长度验证
              eg:if(pwd.length                 alert("密码必须等于或大于6个字符");
                     return false;
                   }
             (2)判断字符串是否有数字
                     使用for循环和substring方法依次截取单个字符,再判断每个字符是否是数字
                         eg:
                                 for (var i = 0; i                               var j = user.substring(i, i + 1);
                                  if (isNaN(j) == false) {
                                  alert("姓名中不能包含数字");
                                   return false;
                                 }
                         }

       三.表单验证的事件和方法
     事件:
            (1)onblur:失去焦点,当光标离开某个文本框时触发
            (2)onfocus:获得焦点,当光标进入某个文本框时触发
     方法:
            (1)blur():从文本域中移开焦点
            (2)focus():再文本域中设置焦点,获得光标
            (3)select():选取文本域中的内容,突出显示输入区域的内容

       四.校验提示特效
          eg:if (!checkPass()) flag=false;
                if (!checkRePass()) flag=false;
       五.文本框输入提示特效
        eg:$("#repwd").blur(checkRePass);
             $("#user").blur(checkUser);
      六.正则表达式
      1.为什么需要正则表达式?
          简洁的代码
          严谨的验证文本框中的内容
          生产环境中更为常用的方式
    2.定义正则表达式
       1》普通方式
           语法:var  reg=/表达式/附加参数;
               eg:var  reg=white/g;
       2》构造函数
             语法:var  reg=new RegExp("表达式","附加参数");
                   eg:var reg=new RegExp("white","g");
    3.表达式的模式
          1》简单模式(只能表示具体的匹配)
             eg:var reg=/china/
          2》符合模式(可以使用通配符表达更为抽象的规则模式)
                eg:var reg=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/;
    4.RegExp对象
           1》方法
         exec():检索字符中是正则表达式的匹配,返回找到的值,并确定其位置
         test():检索字符串中指定的位置,返回true或fasle
           2》属性
       global:RegExp对象是否具有标志g,表示全局匹配
       ignoreCase:RegExp对象是否具有标志i,表示不区分大小写
       multiline:RegExp对象是否具有标志m,表示多行匹配
    5.String对象
        match():找到一个或多个正则表达式的匹配
        search():检索与正则表达式相匹配的值
        replace():替换与正则表达式匹配的字符串
        split():把字符串分割位字符串数组
    6.正则表达式符号
      /..../:代表一个模式的开始和结束
     ^:字符串的开始         $:字符串的结束     \s:任何空白字符    \S:任何非空白字符
    \d:匹配一个数字字符,等价于[0-9]
    \D:除了数字之外的任何字符,等价于[^0-9]
    \w:匹配一个数字,下划线或字母字符,等价于[A-Za-z0-9]
    \W:任何非单字字符,等价于[^a-zA-z0-9]
    .:除了换行符之外的任意字符
    {n}:匹配前一项n次
    {n,}:匹配前一项n次,或者多次
    {n,m}:匹配前一项至少n次,但是不能超过m次
    *:匹配前一项0次或多次,等价于{0,}
    +:匹配前一项1次或多次,等价于{1,}
    ?:匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}

       七.HTML5方式验证表单
       1.HTML5新增验证属性
         placeholder:提供一种提示(hint),输入域为空时显示,获得焦点输入内容后消失
         required:规定输入域不能为空
         pattern:规定验证input域的模式(正则表达式)
             eg:            placeholder="英文、数字长度为6-10个字符" 
                required pattern="[a-zA-Z0-9]{6,10}"  />
                            placeholder="长度为6-16个字符" 
                required pattern="[a-zA-Z0-9]{6,16}"/>
    2.validityState对象的validity属性:
    stepMismatch:输入的值不符合step特性所推算出的规则
         例如:范围从0到10,step特性值为2,因为合法值为该范围内的偶数,其它数值均无法通过
    stepMismatch:使用自定义的验证错误提示信息,使用setCustomValidity()方法自定义错误提示信息
    tooLong:输入的内容超过了表单元素的maxlength特定限定字符的长度
    rangUnderflow:输入的值小于min特性的值
        例如:如果输入的数值小于最小值,则返回true,否则返回fasle
    rangeOverflow:输入的值大于max特性的值
    valueMissing:表单元素设置了required特性,则为必填项
    typeMismatch:输入值与type类型不匹配
    patternMismatch:输入值与pattern特性的正则表达式不匹配

    jQuery知识点

    标签:lock   字符   透明   jquery事件   除了   转换   range   check   构造函数   

    原文地址:https://www.cnblogs.com/unique1/p/13284532.html


    评论


    亲,登录后才可以留言!