美文网首页
JQuery框架

JQuery框架

作者: AAnna珠 | 来源:发表于2019-04-11 09:43 被阅读0次

    JQuery

    jquery中文手册链接地址:http://jquery.cuishifeng.cn/

    一、什么是JQuery
    1. jQuery是一个JavaScript函数库。 jQuery是一个轻量级的"写的少,做的多"的JavaScript库。
    2. jQuery库包含以下功能:
      HTML 元素选取
      HTML 元素操作
      CSS 操作
      HTML 事件函数
      JavaScript 特效和动画
      HTML DOM 遍历和修改
      AJAX
      Utilities
      3.语法:
      3.1基础语法: $(selector).action()
      美元符号定义 jQuery
      选择符(selector)"查询"和"查找" HTML 元素
      jQuery 的 action() 执行对元素的操作
      jq.png
      格式:
    <script type="text/javascript">
                $(function(){
    //JQuery  代码,页面加载之后,自动执行的代码
            })
    

    4.事件


    微信截图_20190411095153.png

    格式:

    <script type="text/javascript">
        $(function(){
                  $("#aaa").mouseover(function(){
                        alert("hello");
            })
        })
        </script>
        <body>
            <span id="aaa">你好</span>
            <span>hello</span>
        </body>
    

    this用法:this正在发生事件的该控件

    this.png
    二、步骤

    1.引入jquery.js的方式本地或者CDN引入
    2.书写思路:①找到控件
    ②添加事件
    ③填写执行代码

    三、基础

    1.JQuery语法:$(document).ready()
    2.常用语法:

    • css("属性","属性值") 为元素设置CSS样式的值
    • addClass() 为元素添加类样式
    • next() 获得元素其后紧邻的同辈元素
    • html() 取得第一个匹配元素的html内容
      3.Dom对象和JQuery对象的区别:
      Dom对象是单独一个,直接使用js获取对象节点,只能使用dom的属性和方法, document.getElement***系列的方法返回的就是dom对象;
      JQuery对象是数组,可以通过数组下标index的方法得到相应的对象,使用$()方法返回对象都是jquery对象。
      3.1Dom转jquery
      例:
    var li = document.getElementsByTagName("li");  //获取所有li元素
    var $li = $( li[0]);     //把第一个li元素(下标为0)封装为一个jquery对象
    alert( $li .html());    //调用jq对象的方法
    

    3.2jquery转Dom
    例:

    var $li = $("li");   //返回jq对象
    var li = $li [0];         //通过[index]或者get(index)返回dom对象
     /*或者var li = li .get (0) */    
    alert(li .innerHTML);
    
    四、选择器

    1.选择器范例

    <script type="text/javascript">
        $(function(){
            $("h3").css("background","orange");
            
        });
        </script>
        
        <body>
            <h3>hello</h3>
            <p>adada</p>
        </body>
    

    2.jq选择器分类:
    2.1类css选择器

    • 基本选择器:标签选择器、类选择器、ID选择器、并集选择器、交集选择器、全局选择器。
    • 层次选择器:后代选择器、子选择器、相邻元素选择器、同辈元素选择器。
    • 属性选择器

    2.1.1.1标签选择器
    例:("h2" )选取所有h2元素* 2.1.1.2类选择器 *例:(" .title")选取所有class为title的元素
    2.1.1.3ID选择器
    例:(" #title")选取id为title的元素* 2.1.1.4并集选择器 *例:("div,p,.title" )选取所有div、p和拥有class为title的元素
    2.1.1.5交集选择器
    例:("h2.title")选取所有拥有class为title的h2元素* 2.1.1.6全局选择器 *例:("" )选取所有元素*
    2.1.2.1后代选择器
    例:("#menu span" )选取#menu下的<span>元素* 2.1.2.2子选择器 *例:(" #menu>span" )选取#menu的子元素<span>
    2.1.2.3相邻元素选择器
    例:(" h2+dl " )选取紧邻<h2>元素之后的同辈元素<dl>* 2.1.2.4同辈元素选择器 *例:(" h2~dl " )选取<h2>元素之后所有的同辈元素<dl>
    2.1.3属性选择器:

    • [attribute]:例:$(" [href]" )选取含有href属性的元素
    • [attribute=value]:例:$(" [href ='#']" )选取href属性值为“#”的元素
    • [attribute !=value]
    • [attribute^=value]:例:$(" [href^='en']" )选取href属性值以en开头的元素
    • [attribute=value]:例:(" [href$='.jpg']" )选取href属性值以.jpg结尾的元素
    • [attribute=value]:例:$(" [href ='txt']" )选取href属性值中含有txt的元素
    • [selector] [selector2] [selectorN]:例:$("li[id][title=新闻要点]" )选取含有id属性和title属性为新闻要点的<li>元素
      2.2过滤选择器
    • 基本过滤选择器
    • 可见性过滤选择器
    • 内容过滤选择器
    • 子元素过滤选择器
    • 表单选择器
    • 表单对象属性过滤选择器
      语法特点是使用“:”,如使用$(“li:first”)来选取第一个li元素
      2.2.1基本过滤选择器:
    • $(" li:first" )选取所有<li>元素中的第一个<li>元素
    • $(" li:first" )选取所有<li>元素中的第一个<li>元素
    • $(" li:even" )选取索引是偶数的所有<li>元素
    • $(" li:odd" )选取索引是奇数的所有<li>元素
    • $("li:eq(1)" )选取索引等于1的<li>元素\
    • $(" li:gt(1)" )选取索引大于1的<li>元素(注:大于1,不包括1)
    • $(“li:lt(1)” )选取索引小于1的<li>元素(注:小于1,不包括1)
    • $(" li:not(.three)" )选取class不是three的元素
    • $(":header" )选取网页中所有标题元素
    • $(":focus" )选取当前获取焦点的元素
      2.2.2可见性过滤选择器:
    • $(":visible" )选取所有可见的元素
    • $(":hidden" ) 选取所有隐藏的元素

    2.2.3内容过滤选择器:

    • $("div:contains("abc.com" )选取含有abc.com文本的div元素
    • $("div:empty" )选取不包含子元素或者文本的空div元素
    • $("ul:has(.red)" ) 选取含有class是red的ul元素
    • $("div:parent" )选取含有子元素或者文本的div元素

    2.2.4表单选择器:

    • $("#myform :input")选取表单中所有的input、select和button元素
    • $("#myform :text")选取email 和姓名两个input 元素
    • $("#myform :password" )选取所有<input type="password" />元素
    • $("#myform :radio")选取<input type="radio" />元素
    • $(" #myform :checkbox " )选取<input type="checkbox " />元素
    • $("#myform :submit " )选取<input type="submit " />元素
    • $("#myform :image" )选取<input type=" image" />元素
    • $(" #myform :reset " )选取<input type=" reset " />元素
    • $("#myform :button" )选取button 元素
    • $(" #myform :file" )选取<input type=" file " />元素
    • $("#myform :hidden" )选取<input type="hidden " />、style="display: none"等元素
      表单对象属性过滤选择器
    • $("input:enabled")选取所有可用的input元素
    • $("input:disabled")选取所有不可用的input元素
    • $("input:checked")选取所有选中的复选框元素
    • $("select option:selected")选取所有选中的选项元素

    拓展:prop() 方法设置或返回被选元素的属性和值。
    设置属性和值:$(selector).prop(property,value);

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
            <title></title>
            <style>
                
            </style>
        </head>
        <script type="text/javascript">
        $(function(){
            $(":checkbox").click(function(){
                if($(":checkbox").prop("checked")){
                    $(":submit").prop("disabled",false);
                }else{
                    $(":submit").prop("disabled",true);
                }
            })
            
        });
        </script>
        
        <body>
            <form>
            <input type="checkbox" />协议<br />
            <input type="submit"  disabled="disabled"/>
            </form>
        </body>
        
    </html>
    
    五、事件

    1.jQuery事件是对JavaScript事件的封装
    2.1常用事件分类如下:
    ①基础事件
    ②鼠标事件
    ③键盘事件
    ④表单事件
    ⑤window事件
    2.2复合事件是多个事件的组合
    鼠标光标悬停
    鼠标连续点击

    3.1鼠标事件:①click( )单击鼠标时②mouseover( )鼠标移过时③mouseout( )
    鼠标移出时④hover()悬停
    3.2键盘事件:①keydown( )按下键盘时②keyup( )释放按键时
    ③keypress( )产生可打印的字符时
    3.3表单事件:focus ()获得焦点时blur失去焦点
    3.4文档/窗口事件: load()已废弃,resize()调整浏览器窗口大小
    4.1绑定事件:
    on(event,[selector],[data],fn)
    [event]事件类型
    [selector]选择器
    [data]数据
    [fn]处理函数
    4.2移除事件:
    off([type],[selector],[fn])
    [type]事件类型
    [selector]选择器
    [fn]处理函数

    六、Dom操作

    1.元素内容操作

    • html()取得的内容是html的内容。
    • text()取得的是匹配元素的文本内容。
    • val()取得的是值
      2.节点操作
      2.1创建节点:
    • $(selector):通过选择器获取节点
    • $(element):把DOM节点转化成jQuery节点
    • $(html):使用HTML字符串创建jQuery节点
      2.2插入子节点:
    • (A).append(B)表示将B追加到A中 如:("ul").append($newNode1);
    • (A). prepend (B)表示将B前置插入到A中 如:("ul"). prepend ($newNode1);
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
            <title></title>
        </head>
        <script type="text/javascript">
            $(function(){
                $("#a").click(function(){
                    $("table").append("<tr><td>cc</td><td>cc</td></tr>")
                })
                
            });
        </script>
        <body>
            <div id="a">新增</div>
            <table>
                <tr>
                    <td>aa</td>
                    <td>aa</td>
                </tr>
                <tr>
                    <td>bb</td>
                    <td>bb</td>
                </tr>
            </table>
        </body>
    </html>
    

    2.3插入同辈节点:

    • (A).after (B)表示将B插入到A之后 如:("ul").after($newNode1);
    • (A). before (B)表示将B插入至A之前 如:("ul").before($newNode1);
      2.4替换节点
    • replaceWith()
      2.5复制节点
    • clone()
      2.6删除节点
    • remove()
    • empty()
      2.7获取节点属性
    • atrr()
      2.8遍历子元素
    • children()
      2.9遍历同辈元素
    • 用于获取紧邻匹配元素之后的元素,
      如:$("li:eq(1)").next().css("background-color","#F06");
    • 用于获取紧邻匹配元素之前的元素,
      如:$("li:eq(1)").prev().css("background-color","#F06")
    • 用于获取位于匹配元素前面和后面的所有同辈元素,
      如:$("li:eq(1)").siblings().css("background-color","#F06");
      2.10遍历前辈元素
    • parent()父级元素
    • parents()组先级元素
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <style>
    .ancestors *
    { 
        display: block;
        border: 2px solid lightgrey;
        color: lightgrey;
        padding: 5px;
        margin: 15px;
    }
    </style>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
      $("span").parent().css({"color":"red","border":"2px solid red"});
    });
    </script>
    </head>
    <body>
    
    <div class="ancestors">
      <div style="width:500px;">div (曾祖父元素)
        <ul>ul (祖父元素)  
          <li>li (父元素)
            <span>span</span>
          </li>
        </ul>   
      </div>
    
      <div style="width:500px;">div (祖父元素)   
        <p>p (父元素)
            <span>span</span>
          </p> 
      </div>
    </div>
    
    </body>
    </html>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
            <title></title>
        </head>
        <style>
        .hover{
            background-color: #e0e0e0;
        }       
        </style>
        <script type="text/javascript">
            $(function(){
                
                $("#b").children().click(function(){
                    var b = $(this).text();
    
                    $("#b").children().each(function(){
                        $(this).text(b);
                    });
                })
            });
        </script>
        <body>
        <div id="a">新增</div>
        <ul id="b">
            <li>aa</li>
            <li>bb</li>
            <li>cc</li>
        </ul>
        </body>
    </html>
    
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
            <title></title>
        </head>
        <style>
        .hover{
            background-color: #e0e0e0;
        }       
        </style>
        <script type="text/javascript">
            $(function(){
                var ss = ["黑龙江省","吉林省","辽宁省"];
                var cc = [
                ["黑龙江省","哈尔滨","大庆","齐齐哈尔"],
                ["吉林省","长春","吉林","四平"],
                ["辽宁省","沈阳","大连","鞍山"]];
                for(var i=0;i<ss.length;i++){
                    $("#s").append("<option>"+ss[i]+"</option>");
                }
                
                $("#s").change(function(){
                    for(var i=0;i<cc.length;i++){
                        if(cc[i][0] == $("#s").val()){
                            $("#c").empty();
                            for(var j=1;j<cc[i].length;j++){                
                                $("#c").append("<option>"+cc[i][j]+"</option>")
                            }           
                        }
                    }
                })
    
            });
        </script>
        <body>
        <div id="a">新增</div>
        <select id="s"></select>
        <select id="c"></select>
        </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:JQuery框架

          本文链接:https://www.haomeiwen.com/subject/hpjziqtx.html