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

    使用jQuery:

    jQuery 通常被用来优化HTML文档操作、事件处理、动画设计和Ajax交互。

    jQuery的中使用css选择器来找到html元素。

    jQuery优势:

    1、体积小,使用灵巧(只需要引入一个js文件)

    2、方便的选择页面元素(模仿CSS选择器更精确、灵活)

    3、动态更改页面样式/页面内容(操作DOM,动态、添加、移除样式。)

    4、控制响应事件(动态添加响应事件)。

    5、提供基本网页特效(提供已封装的网页特效方法)

    6、快速实现通信(ajax)。

    7、易扩展,插件丰富。

    jQuery下载:

    官网:http://jquery.com/

    如何引入jQuery包

     No1.本地引入
          <script src = "jquery.js"></script>
         No2.他站网络引入
         <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
        
         <script src="jquery.js"></script>
         <script>
         $(function(){
             alert("欢迎使用 jQuery");
         });
         </script>

      1. $ 是 jQuery 的别名,实际就是指 jQuery 对象。

    2.上面代码表示页面中所有节点都准备好之后,就可以执行函数了。

    $(function(){})与window.onload = function(){}的区别
        1. // jq 写法
         $(function () {
             console.log("ready1");
         });
         $(function() {
             console.log("ready2");
         });
         // js 写法
         window.onload = function () {
             console.log('load1');
         };
         window.onload function () {
             console.log('load2');
         }

    上面的代码运行后的结果为,ready1 ready2 load2 ,根据结果,得出结论:

    1.ready 不会覆盖。而load会覆盖。

    2.ready在load之前执行。

    js中是脚本加载。jq中是节点加载。

    $(document).ready(function(){

    alert('第一个jQuery程序!');

    });

    jQuery选择器

    类似css中的选择器。使用过滤器的到是具体的元素。

    注意的是它选出的结果是集合,即使只有一个元素。so 需要下表访问元素。

    1.基本选择器。

    2.层级选择器。

    3.伪类选择器。

    基本选择器

    1.ID选择器:($"#id")

    2.标签选择器:$("element")

    3.类选择器:$(".className")

    4.通配选择器:$("*")

    5.组选择器:$("selector1,selector,selectorN")特点:无数量限制,以逗号分隔(逐个匹配,结果全部返回)

    层级选择器

    1.包含选择器:$("a b")在给定的祖先元素下匹配所有后代元素。(不受层级限制)

    2.子选择器:$("parent>child")在给定是的父元素下匹配所有的子元素。

    3.相邻选择器:$("prev+next")匹配所有紧接在prev元素后的next元素。(紧随其后找一个元素)

    4.兄弟选择器:$("prev~siblings")匹配prev元素之后的所有的siblling元素

         <div class="main">
         <span>1<img src="img/1.jpg"/></span>
            2<img src="img/1.jpg"/>
         </div>
        3<img src="img/1.jpg">
         4<img src="img/1.jpg">
         <div>
             5<img src="img/1.jpg">
         </div>
         <script>
         //$(".main img").css("border","5px solid red");
         //$(".main > img").css("border","5px solid blue");
         //$(".main + img").css("border","5px solid blue");
         //$(".main ~ img").css("border","5px solid blue");
         /*

     css() 方法介绍

         css() 方法前面必须是jq对象,如果是元素节点的话,会报错

    设置style属性

         如果修改一个style属性时

                 $("div").css( "color", "red" );
                 $("div").css( {"color":"red"} );                

         如果修改多个style属性时  

     $("div").css( {"color":"red", "background":"blue"} );

      获取style属性

         如果获取一个style属性时

         $("div").css( "color" );

         如果获取多个style属性时

         $("div").css( ["color", "background"] );

    */

    </script>

    利用

    $("div").innerHTML = "这是一个div";

    js与jq混合写法

    $("div").html("这是一个div");

    上面的书写效果是一样的。

    $(div1).innerHTML = "这是一个div";

    语意:将js对象转为jq对象。

    伪类选择器

    特定位置选择器

    1。:first匹配找到的第一个元素

    2。:last匹配找到的最后一个元素

    3。:eq匹配一个给定索引所有值的元素。

    指定范围选择器

    1:even匹配所有索引值为偶数的元素

    2:odd匹配所有索引值为奇数的元素

    3:gt(index)匹配所有大于给定索引值的元素(大于这个下标的所有元素)

    4:lt(iudex)匹配所有小于给定索引值的元素(小于这个下标的所有元素)

    <ul>
             <li>0</li>
             <li>1</li>
             <li>2</li>
             <li>3</li>
             <li>4</li>
             <li>5</li>
             <li>6</li>
         </ul>
         <script>
         $("li:first").css("color", "orange");
         </script>

    排除选择器

    1. :not 去除所有与给定选择器匹配的元素
         <p>1</p>
         <p id="mp">2</p>
         <p class="c1">3</p>
         <script>
         $("p:not(.c1,#mp)").css("color", "orange");
         </script>

    内容选择器

    1.:contains匹配包含给定文本的元素
        <div>abcd</div>
        <div>ABcd</div>
        <div>xxyy</div>
        <script>
        console.log($("div:contains('bc')"));
        </script>
    2.:empty匹配所有不包含子元素或者文本的空元素
        <table>
            <tr><td>Value 1</td><td></td></tr>
            <tr><td>Value 2</td><td></td></tr>
        </table>
        <script>
            console.log($("td:empty"));
        </script>
    3.:has匹配含有选择器所匹配的元素的元素(用来选择标签的)
        <div><p>Hello</p></div>
        <div>Hello again!</div>
        <script>
            console.log($("div:has(p)"));
        </script>
    4.:parent匹配含有子元素或者文本的元素
        <table>
            <tr><td>Value 1</td><td></td></tr>
            <tr><td>Value 2</td><td></td></tr>
        </table>
        <script>
            console.log($("td:parent"));
        </script>
    5.可见性选择器
       1.:hidden匹配所有不可见元素,或者type为hidden的元素。
        <table>
            <tr style = "display:none"><td>Value 1</td><td></td></tr>
            <tr><td>Value 2</td><td></td></tr>
        </table>
        <script>
            console.log($("tr:hidden"));
        </script>
        2.:visible匹配所有的可见元素
        <table>
            <tr style = "display:none"><td>Value 1</td><td></td></tr>
            <tr><td>Value 2</td><td></td></tr>
        </table>
        <script>
            console.log($("tr:visible"));
        </script>
    属性:
        1.[attribute]匹配包含给定属性的元素(具体某个属性的选取)
            <div>
            <p>Hello!</p>
            </div>
            <div id="test2"></div>
            <script>
            console.log( $("div[id]") );
            </script>
        2.[attribute=value]匹配给定的属性是某个特定值的元素
            <input type="checkbox" name="a" value="1" />
             <input type="checkbox" name="a" value="2" />
             <input type="checkbox" name="b" value="3" />
             <script>
             $("input[name='a']").attr("checked", true);
             </script>
        3.[attribute!=value]匹配所有不含有指定的属性,或者属性不等于特定值的元素。
            <input type="checkbox" name="a" value="1" />
             <input type="checkbox" name="a" value="2" />
             <input type="checkbox" name="b" value="3" />
             <script>
             $("input[name!='a']").attr("checked", true);
             </script>
       4. [attribute^=value]匹配给定的属性是以某些值开始的元素
            <input type="checkbox" name="abc" value="1" />
             <input type="checkbox" name="adc" value="2" />
             <input type="checkbox" name="b" value="3" />
             <script>
             $("input[name^='a']").attr("checked", true);
             </script>
      5.[attribute$=value]匹配给定的属性是以某些值结尾的元素
            <input type="checkbox" name="a" value="1" />
             <input type="checkbox" name="a" value="2" />
             <input type="checkbox" name="b" value="3" />
             <script>
             $("input[name$='c']").attr("checked", true);
             </script>
      6.[attribute*=value]匹配给定的属性以包含某些值的元素
            <input type="checkbox" name="a" value="1" />
             <input type="checkbox" name="a" value="2" />
             <input type="checkbox" name="b" value="3" />
             <script>
             $("input[name*='d']").attr("checked", true);
             </script>

    jQuery选择器的优化

    提高性能、增强语义并简化逻辑。常用的选择器中,ID选择器速度最快,其次是类型选择器。

    1.多用ID选择器

    2.少直接使用class选择器

    3.多用父子关系,少用嵌套关系。

    4.缓存jQuery对象。

    过滤器

    jQuery提供了2种选择文档元素的方式:选择器和过滤器。

    1.类过滤器:根据元素的类属性来进行过滤操作。

    hasClass(className):判断当前jQuery对象中的某个元素是否包含指定类名,包含返回true,不返回false。有就可以返回true。

    $(this).hasClass("d1");

    2.下标过滤器:精确选出指定下标元素。

    eq(index):获取第N个元素。index是整数值,下标从0开始。

    $(this).eq(1)

    3.表达式过滤器。

    filter():筛选出与指定表达式匹配的元素集合。

    expr:选择器表达式

    $("div").filter(".d1,.d4,#d3");

    4.映射map(callback):将一组元素转换成其他数组。

       <div>1</div>
        <div>2</div>
        <script>
            console.log($("div").map(function(){
                return this.innerHTML;
            }))
        </script>

    5.清洗not(expr):删除与指定表达式匹配的元素。

        <p>0</p>
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
        <p>5</p>
        <script>
            $("p").not(":eq(2)").css("color","red");
        </script>    

    6截取slice(start,end):选取一个匹配的子集。

       $("p").slice(0,1).css("color","red");
        $("p").slice(2,4).css("color","red");
        $("p").slice(-2).css("color","red");
        $("p").slice(0,-2).css("color","red");
        $("p").slice(-4,-2).css("color","red");

    7.children():取得所有元素的所有子元素集合(子元素)。

      <div>
            <li>0</li>
            <li id="li1">1</li>
            <li>3</li>
            <li>4</li>
        </div>
        <script>
            $("div").children().css("color","red");
            $("div").children(":not(#li1)").css("color","red");
        </script>

    8.find():搜索所有与指定表达式匹配的元素(所有后代元素中查找)。

    console.log($("div").find(":eq(0)"));

    9.查找兄弟元素siblings()查找当前元素的兄弟.

      //查找id=li1元素的兄弟节点(包含前后兄弟节点)。
        $("#li").siblings().css("color","red");
        //
        $("#li1").siblings(".li3,#li0").css("color","red").
        //
        console.log($("p:eq(0)").siblingss("div:eq(1)").children());
  • 相关阅读:
    Access 通用访问类 OleDbHelper
    让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
    提高网站性能的方法
    php 正则表达式整理 归纳 重点
    C++数据结构知识点
    algorithm算法设计,数据结构基本概念之我的归纳 by whb_咸菜圣斗士啊斌斌斌斌
    浏览器兼容性问题及常见的解决方法
    js抽象方法的使用
    js制作图片轮换切换
    C语言排序算法总结
  • 原文地址:https://www.cnblogs.com/l8l8/p/8991938.html
Copyright © 2011-2022 走看看