zoukankan      html  css  js  c++  java
  • 001 JQuery (001

    [A] JQuery基础

        JQuery:

          1. 一个快速,简洁的JavaScript框架

                       2. 设计宗旨: "write less, do more"

                       3.  JQuery兼容的主流浏览器,如IE6.0+, FF1.5+, Safari2.0+, Opera9.0+


                1. JQuery优点:

                        1. 简化JS的复杂操作

                        2. 不再关心兼容性

                2. JQuery帮助文档

                      官网:https://jquery.com/

                3. JQuery的版本区别:

                      1.0     可以兼容到IE8以下

                      2.0     只兼容IE8以上

                      3.0     目前最新

                      【注】遇到新东西去查文档学

                4. JQuery文件各个版本下载

                        网址:http://www.jq22.com/jquery-info122

                5. JQuery设计思想

                      1. 模拟css选择网页元素

                              【格式】:$("css选择器").css("属性", "属性值")

                          css选择器参考手册: http://www.runoob.com/cssref/css-selectors.html

                      2. 独有表达式选择

                            $("li:first").css("backgroundColor", "red");        第一个li标签

                            $("li:last").css("backgroundColor", "red");         最后一个li标签

                            $("li:even").css("backgroundColor", "red");         偶数位的li标签

                            $("li:odd").css("backgroundColor", "red");          奇数位的li标签

                            $("li:eq(2)").css("backgroundColor", "red");        下标为2的li标签

                      3. 多种筛选方式

                            $("li:eq(2)").css("backgroundColor", "red");        下标为2的li标签

                            或写成:

                                $("li").eq(2).css("backgroundColor", "red");    下标为2的li标签

     

                             $("li.box").css("backgroundColor", "red");          类名为box的li标签

                            或写成:

                                $("li").filter(".box").css("backgroundColor", "red");类名为box的li标签

     

    [B] JQuery的写法

                    1. 方法函数化

                          示例1:简化页面加载函数

                              $(function(){

                                  代码块;

                              })

                              可以替代:

                                  window.onload = function(){

                                      代码块;

                                  }


                          示例2:简化事件函数

                              $("css样式").onclick = function(){

                                  代码块;

                              }

                              可以替代:

                                  var oBtn = document.getElementById("id名");

                                  oBtn.onclick = function(){

                                      代码块;

                                  }

                          【注】在JQ中基本上见不到等于号,所有的复制操作都是函数传参实现的


                    2. 链式操作

                          对于同一个目标元素,若有多个事件函数,可以实现链式操作

                          示例:

                              $("#oBtn").onclick = function(){

                                  alert("我被点击了");

                              }


                              $("#oBtn").onmouseover = function(){

                                  alert("鼠标来了");

                              }


                              $("#oBtn").onmouseout = function(){

                                  alert("鼠标离开了");

                              }

                              转化为链式操作:

                                  $("#oBtn").onclick = function(){

                                      alert("我被点击了");

                                  }.onmouseover = function(){

                                      alert("鼠标来了");

                                  }.onmouseout = function(){

                                      alert("鼠标离开了");

                                  }

                    3. 取值赋值合体

                          即一步实现取值和赋值两步操作

                          示例:获取元素节点内容并赋值

                              $("#div1").html();              

                                  // 获取id为div1的节点里的内容,返回值即为内容


                              $("#div1").html("我是替换文本");        

                                  // 获取获取id为div1的节点里的内容,并将该内容替换为"我是替换文本"


            【注】JQ与JS的关系

                    JQ底层代码是JS,两者可以共存,但是不能混用

                    所谓共存,是指语句可以交叉使用

                    所谓不能混用,是指一条语句不能同时包含JQ和JQ两种代码

     

    [C] JQuery常用方法1

          1. filter   过滤,对已经获取到的网页元素进行过滤

                              示例:

                                  $("div").filter(".box").css("width", "100px")

                                  // 将选中的div中,把类名为box的元素设置为"width = 100px"

                        2. not      过滤的反义词,即在已经选中的网页元素中去除元素

                              示例:

                                  $("div").not(".box").css("width", "100px")

                                  // 将选中的div中,把除了类名为box的元素都设置为"width = 100px"

                        3. has      拥有,根据节点的子元素特征,来选择父元素

                              示例:

                                  $("div").has(".box").css("width", "100px")

                                  // 将选中的div中,把拥有类名为.box的子节点的节点选中

                        4. prev     查找当前兄弟节点中的上一个节点

                         next     查找当前兄弟节点中的下一个节点

                              示例:

                                  $("div").prev(".box").css("width", "100px")

                                  $("div").next(".box").css("width", "100px")

                        5. find     查找指定条件下的子节点

                              示例:

                                  $("div").find("[name=ad]").css("width", "100px")

                        6. index(下标)    获取当前节点在兄弟节点中的下标

                              示例:

                                  $("h3").index();            

                                      // 返回值为标签h3在兄弟节点中的下标

                        7. eq(下标)     通过下标获取指定的元素节点

                              示例:

                                  $("li").eq(2).css("width", "100px")

                                  // 获取下表为2的li标签

                        8. attr         获取和设置行间属性

                              示例:

                                  获取行间属性

                                        $("#div").attr("title")

                                            // 返回值为指定节点的title

                                  设置/修改行间属性

                                        $(#div).attr("title", "word")

                                            // 将行间属性title修改为"word"

                                  一次性修改多个行间属性

                                        $(#div).attr({

                                            title: "word",

                                            class: "xxx"

                                        })

    [D] JQuery常用方法2

          1.  addClass()       添加class的某个或多个样式

                           removeClass()    删除class的某个或多个样式

                              示例:

                                  $("div1").addClass("box2 box3 box4")

                                      添加class样式,若某个被添加的样式已经存在,测忽略

                                  $("div1").removeClass("box3 box4")

                                      删除掉某个class样式,若某个样式不存在,则忽略掉

                        2.  获取节点的宽度

                              width()             width

                              innerWidth()        width + padding 

                              outerWidth()        width + padding + border

                              outerWidth(true)    width + padding + border + margin

                        3.  获取节点的高度

                              height()             height

                              innerheight()        height + padding 

                              outerheight()        height + padding + border

                              outerheight(true)    height + padding + border + margin

                        4.  节点操作(不用事先创建节点)

                              insertBefore()      before()      将某节点插在节点之前

                                  $("span").insertBefore("div")

                                  // 将span节点插在div节点之前

                              insertAfter()       after()       将某节点插在节点之后

                                  $("span").insertAfter("div")

                                  // 将span节点插在div节点之后

                              appendTo()          append()      将某节点接到节点的子节点最后

                                   $("span").appendTo("div")

                                  // 将span节点插在div节点的子节点后面

                              prependTo()         prepend()     将某节点接到节点的子节点首位

                                  $("span").prependTo("div")

                                  // 将span节点插在div节点的子节点首位

                              remove()                          删除某节点

                                  $("span").remove()

                                  // 将span节点删除掉

                              【注】insertBefore()和before()对比

                                  1. 同样的效果,表达方式不一样

                                      示例:

                                          $("span").insertBefore("div")

                                              // 将span节点插在div节点之前

                                          等价于:

                                              $("div").before("span")

                                                  // 在div节点之前插入节点span

                                  2. 链式操作时,主体不一样

                                      示例:

                                          $("span").insertBefore("div").css("backgroundColor", "red")

                                              // 将span节点插在div节点之前,并且span背景色设置为红色

                                          等价于:

                                              $("div").before("span").css("backgroundColor", "red")

                                                  // 在div节点之前插入节点span,并且div背景色设置为红色

                        5. on和off

                                  1. 传统的事件类型只能绑定一个事件,同时绑定多个事件,则后面会覆盖前面,只有最后一个有效

                                  2. 事件监听器可以实现一个事件类型绑定多个事件,但是无法精确的删除其中某一个函数

                              在JQuery中,不带on的事件绑定,其底层使用事件监听器实现的,可以同时绑定多个事件,互不影响

                                  如:同时绑定三个事件

                                      $("#div").click(function(){

                                          alert(1);

                                      })

                                      $("#div").click(function(){

                                          alert(2);

                                      })

                                      $("#div").click(function(){

                                          alert(3);

                                      })

                                  则可一次点击触发三个事件

                          on方法添加事件

                                  1. 给一个事件添加一个函数

                                        $("#div").on("click", function(){

                                            alert(1);

                                        })

                                        // 给div添加click事件

                                  2. 给多个事件添加同一个函数,多个事件用冒号隔开即可

                                        $("#div").on("click mouseover", function(){

                                            alert(1);

                                        })

                                  3. 给多个事件分别添加不同的函数,传入事件=>函数键值对即可

                                        $("#div").on({

                                            click: function(){

                                                alert(1);

                                            },

                                            mouseup: function(){

                                                alert(2);

                                            },

                                            mousemove: function(){

                                                alert(3);

                                            },

                                        })

                                  4. 事件委托

                                          on的参数分别为: 父节点,触发对象的选择器,触发函数

                                        示例: 

                                            $("ul").on("click","li",function(){

                                                $(this).css("backgroundColor", "red");

                                            })

                            off方法取消事件

                                  1. 取消所有事件上的所有函数

                                        $("#div1").off()

                                  2. 取消某一个事件上的所有函数

                                        $("#div1").off("click")

                                  3. 取消某一个事件上的某一个函数

                                        $("#div1").off("click", show)

                                        【注】这个被取消的函数必须是由函数名的函数

                  6. 创建节点

                              $(`<li>内容</li>`).append($("ul"));

     

    [E] JQuery常用方法3

                        1. 阻止事件冒泡 stopPropagation()

                              示例:

                                  $("#div1").on("click", function(ev){

                                      aleret(this.id);

                                      ev.stopPropagation()

                                  })

                        2. 阻止对象的默认行为 preventDefault

                              示例:

                                  $("a").click(function(ev){

                                      ev.preventDefault();

                                  })

                                  取消a链接的默认行为,点击后不会跳转

                        3. 既阻止事件冒泡,又阻止默认行为 return false

                              示例:假设a又冒泡事件

                                  $("a").click(function(ev){

                                      return false;

                                  })

                        4. which

                               1. 在鼠标事件中输出button

                                          输出值:

                                              左键    1

                                              滚轮    2

                                              右键    3

                                      $("#div1").click(function(ev){

                                          alert(ev.which);

                                      })

                             2. 在keydown事件中,输出keyCode     键码(不区分大小写)



                                3. 在keypress事件中,输出charCode   字符码(区分大小写)


                        5.  offset()             直接获取当前元素到可视窗口的距离

                            offset().left       直接得到当前元素到最左端(可视窗口)的距离

                            offset().top        直接得到当前元素到最左端(可视窗口)的距离

                            【注】没有offset().right和offset().bottom

                              示例:

                                  $("#div2").offset().left

                                      获取div2节点距离可视窗口最左端的距离

                        6.  position()           直接获取当前元素,距离第一个有定位父节点的距离,margin算在内

                             position().left     

                             position().top

                            【注】没有position().right和position().bottom

                              示例:

                                  $("#div2").position().left

                                      获取div2节点距离第一个有定位的父节点最左端的距离

                        7. offsetParent()       查找第一个有定位的父节点,如果父节点没有定位子继续找,最后找到html

                              示例: 

                                  $("#div1").offsetParent().css("backgroundColor", "red")

                                      将div1元素的有定位元素的父节点的背景色设置为red。

                        8. val()            获取/设置表单元素的值

                              【注】1. 取值时,JQ只能取到第一个符合条件的元素的值

                                    2. 设置时,JQ批量设置所有符合条件的元素的值

                                此外:

                                      css(), arttr(), html()等都可以实现批量赋值

                        9. size()           获取网页元素的个数

                            length           等同于size()

                        10. each()           循环遍历

                            示例:

                                $("div").each(function(item, index){

                                    $(item).html(index);

                                })

     

  • 相关阅读:
    kernel makefile分析 之include路径分析
    python模块,包,安装
    python 资源
    Python版QQ群发消息
    marvell 88f6282 工程包制作
    CPU : 二级缓存容量
    编译多个文件到内核模块
    展布频谱(Spread Spectrum, SS)
    编程练习 链表题目反序,合并
    汇编语言基础之七 框架指针的省略(FPO)
  • 原文地址:https://www.cnblogs.com/carreyBlog/p/13267626.html
Copyright © 2011-2022 走看看