zoukankan      html  css  js  c++  java
  • jQuery基础

    什么是jQuery?

      jQuery是一个轻量级的、兼容多浏览器的JavaScript库。相比于JavaScript更加简洁和方便。

    jQuery对象

      jQuery对象的定义: 一般约定在变量前加"$"符号(var $variable = jQuery 对象);

    
    
    //查找ID为i1的标签
    
    
    jQuery对象 
    var $s=$("#i1") //jQuery对象得到的是一个数组
    DOM对象 
    var s = document.getElementById("i1")
    
    
    $s[0]                 //jQuery对象通过索引转成DOM对象
    $(DOM对象) //DOM对象通过$()转成jQuery对象
    
    

    查找标签

    选择器

    $("#id")            //ID选择器
    $(".class")         //类选择器
    $("标签")            //标签选择器
    $("*")              //所有元素选择器
    $("#id,.class")      //组合选择器,用逗号隔开

    基本选择器

    :first           // 第一个
    :last            // 最后一个
    :eq(index)              // 索引等于index的那个元素
    :even                   // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd                    // 匹配所有索引值为奇数的元素,从 0 开始计数
    :gt(index)              // 匹配所有大于给定索引值的元素
    :lt(index)              // 匹配所有小于给定索引值的元素
    :not(元素选择器)          // 移除所有满足not条件的标签
    :has(元素选择器)          // 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)

    层级选择器

    $("x y");               // x的所有后代y(子子孙孙)
    $("x > y");             // x的所有儿子y(儿子)
    $("x + y")              // 找到所有紧挨在x后面的y
    $("x ~ y")              // x之后所有的兄弟y

    表单选择器

    $(":input")      //匹配所有 input, textarea, select 和 button 元素
    $(":text")       //所有的单行文本框
    $(":password")   //所有密码框
    $(":radio")      //所有单选按钮
    $(":checkbox")   //所有复选框
    $(":submit")     //所有提交按钮
    $(":reset")      //所有重置按钮
    $(":button")     //所有button按钮
    $(":file")       //所有文件域
    

    表单对象属性: $("input:checked") //所有选中的元素 $("select option:selected") //select中所有选中的option元素
    $("input:disabled") //无法输入的input元素

    筛选器

    过滤

    $("p").eq(N)             //当前操作中第N个jQuery对象,类似索引
    $("p").first()          //第一个元素
    $("p").last()          //最后一个元素
    $("p").hasClass("test")    //元素是否含有某个特定的类,返回布尔值
    $("li").has('ul')       //包含特定后代的元素
    $("p").not      
    //从匹配元素的集合中删除与指定表达式匹配的元素
    
    

    查找

    $("div").children()                   //div中的每个子元素,第一层
    $("div").find("span")                 //div中的包含的所有span元素,子子孙孙
    
    $("p").next()                        //紧邻p元素后的一个同辈元素
    $("p").nextAll()                       //p元素之后所有的同辈元素
    $("#test").nextUntil("#test2")       //id为"#test"元素之后到id为'#test2'之间所有的同辈元素,掐头去尾
    
    $("p").prev()                    //紧邻p元素前的一个同辈元素
    $("p").prevAll()                 //p元素之前所有的同辈元素
    $("#test").prevUntil("#test2")       //id为"#test"元素之前到id为'#test2'之间所有的同辈元素,掐头去尾
    
    $("p").parent()                  //每个p元素的父元素
    $("p").parents()                 //每个p元素的所有祖先元素,body,html
    $("#test").parentsUntil("#test2")     //id为"#test"元素到id为'#test2'之间所有的父级元素,掐头去尾
    
    $("div").siblings()              //所有的同辈元素,不包括自己

    属性操作

    attr(attrName)            // 返回第一个匹配元素的属性值
    attr(attrName, attrValue) // 为所有匹配元素设置一个属性值
    attr({k1: v1, k2:v2})     // 为所有匹配元素设置多个属性值
    removeAttr()              // 从每一个匹配的元素中删除一个属性

     用于checkbox和radio

     prop()             // 获取属性

     $("input[type='checkbox']").prop("checked", true); //设置是否选中

     $("input[type='checkbox']").prop("checked", false);

     removeProp()          // 移除属性

    文本操作

    $('p').html();               //返回p元素的html内容(包含文本内容和字标签)
    $("p").html("hello");              //设置p元素的html内容
    $('p').text();              //返回p元素的文本内容
    $("p").text("hello");          //设置p元素的文本内容
    $("input").val();             //获取文本框中的值
    $("input").val("hello");         //设置文本框中的内容

    样式操作

    $("div").addClass();  // 添加指定的类名。
    $("div").removeClass();// 移除指定的类名。
    $("div").hasClass();  // 判断样式存不存在
    $("div").toggleClass();// 切换类名,如果有就移除,如果没有就添加。

    CSS

    $("p").css("color");          //访问查看p元素的color属性
    $("p").css("color","red");    //设置p元素的color属性为red
    $("p").css({ "color": "red", "background": "yellow" });    //设置p元素的color为red,background属性为yellow(设置多个属性要用{}字典形式)

    位置

    offset()// 获取匹配元素在当前窗口左上角(document)的相对偏移或设置元素位置
    position()// 获取匹配元素相对父元素的偏移
    scrollTop()// 获取匹配元素相对滚动条顶部的偏移
    scrollLeft()// 获取匹配元素相对滚动条左侧的偏移

    尺寸

    $("p").height();          //获取p元素的高度
    $("p").width();           //获取p元素的宽度
    
    $("p:first").innerHeight()    //获取第一个匹配元素内部区域高度(包括内容和内填充、不包括边框)
    $("p:first").innerWidth()     //获取第一个匹配元素内部区域宽度(包括内容和内填充、不包括边框)
    
    $("p:first").outerHeight()    //匹配元素外部高度(默认包括补白和边框,不包括外边距)
    $("p:first").outerWidth()     //匹配元素外部宽度(默认包括补白和边框,不包括外边距)
    $("p:first").outerHeight(true)    //为true时包括边距

    五、文档处理

    内部追加

    $("a").append("b")       在a标签元素内后面追加内容
    $("a").preappend()       在a标签元素内前面追加内容
    $("a").appendTo("b")      将a标签追加在b标签元素内后边
    $("a").preappendTo("b")     将a标签追加到b标签元素内后边

    同级追加

    $("a").after("b")         在a标签的同级后追加b
    $("a").before("b")        在a标签的同级前追加b
    $("a").insertAfter("b")    在b标签的同级的后面追加a
    $("a").inserBefore("b")     在b标签的同级的前面追加a

    替换

    $("a").replaceWith("b")     用b替换指定的a标签
    $("a").replaceAll("b")      用a将所有的b标签都替换

    删除

    $("a").remove()       删除所有匹配的元素,包括本身
    $("a").empty()         删除匹配的到的元素的子节点,不包括本身

    克隆

    $("a").clone()            clone方法不加参数true,克隆标签但不克隆标签带的事件 
    $("a").clone(true)        clone方法带参数,克隆标签也克隆标签的事件

     事件

    $("p").click();      //单击事件
    $("p").dblclick();    //双击事件
    $("input[type=text]").focus()  //元素获得焦点时,触发 focus 事件
    $("input[type=text]").blur()   //元素失去焦点时,触发 blur事件
    $("button").mousedown()//当按下鼠标时触发事件
    $("button").mouseup()  //元素上放松鼠标按钮时触发事件
    $("p").mousemove()     //当鼠标指针在指定的元素中移动时触发事件
    $("p").mouseover()     //当鼠标指针位于元素上方时触发事件
    $("p").mouseout()     //当鼠标指针从元素上移开时触发事件
    $(window).keydown()    //当键盘或按钮被按下时触发事件
    $(window).keypress()   //当键盘或按钮被按下时触发事件,每输入一个字符都触发一次
    $("input").keyup()     //当按钮被松开时触发事件
    $(window).scroll()     //当用户滚动时触发事件
    $(window).resize()     //当调整浏览器窗口的大小时触发事件
    $("input[type='text']").change()    //当元素的值发生改变时触发事件
    $("input").select()    //当input 元素中的文本被选择时触发事件
    $("form").submit()     //当提交表单时触发事件
    $(window).unload()     //用户离开页面时 
    常用事件

    事件绑定与去除

    函数绑定
        $("").on(事件类型,选择器(可选),function(函数){...})
    
    除去绑定
        $("").off(事件类型,选择器(可选),function(函数){...})

    页面载入

      主要为了防止DOM语句未被加载,执行JS函数会报错。当页面(DOM)载入成功后再运行的函数事件

    $(document).ready(function(){
    //这里写JS代码
    })

    事件委托 

      事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件,适用于 给未来的元素(页面生成的时候还没有的标签)  

      事件捕获:从顶层开始进行事件捕获,直到事件触发到达了事件源元素(自上而下)

      事件冒泡:从事件源往上进行事件冒泡,直到到达document (自下而上)

    $("父标签").on("事件类型", "选择器参数", function(){...})    #选择器参数无需加$
          $(".form-group").on("focus","input",function () {
              $(this).parent().removeClass("has-error");      #this代表当前点击的那个input标签,只能代表一个
              $(this).next().text("")

    事件对象

    $("p").click(function(event){  
     alert(event.type); //"click"  
    }); 
    
    (event object)属性方法:
    event.pageX   //事件发生时,鼠标距离网页左上角的水平距离
    event.pageY   //事件发生时,鼠标距离网页左上角的垂直距离
    event.type   //事件的类型
    event.which   //按下了哪一个键
    event.data   //在事件对象上绑定数据,然后传入事件处理函数 jQuery.data("key","value")     通过判断jQuery.data("key")="value"进行判断
    event.target  //事件针对的网页元素
    event.preventDefault()  //阻止事件的默认行为(比如点击链接,会自动打开新页面)
    event.stopPropagation() //停止事件向上层元素冒泡

    插件拓展

    给具体的jQuery对象添加扩展 
    $.fn.extend(){要扩展的函数名:function(){ 具体要执行的代码}}

     给jQuery添加全局扩展

    $.extend(){要扩展的函数名:function(){具体要执行的代码}}
  • 相关阅读:
    Powered by .NET Core 进展0815:第5次发布尝试(Windows部署)团队
    峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色团队
    做梦也没有想到:Windows 上的 .NET Core 版博客系统表现更糟糕团队
    全网最详细的zkfc启动以后,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的启动或格式化zkfc时出现java.net.NoRouteToHostException: No route to host ... Will not attempt to authenticate using SASL (unknown error)错误的解决办法(图文详解)
    全网最详细的HA集群的主节点之间的双active,双standby,active和standby之间切换的解决办法(图文详解)
    全网最详细的启动zkfc进程时,出现INFO zookeeper.ClientCnxn: Opening socket connection to server***/192.168.80.151:2181. Will not attempt to authenticate using SASL (unknown error)解决办法(图文详解)
    全网最详细的再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法(图文详解)
    执行bin/hdfs haadmin -transitionToActive nn1时出现,Automatic failover is enabled for NameNode at bigdata-pro02.kfk.com/192.168.80.152:8020 Refusing to manually manage HA state的解决办法(图文详解)
  • 原文地址:https://www.cnblogs.com/liusouthern/p/8573629.html
Copyright © 2011-2022 走看看