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());

猜你喜欢

转载自www.cnblogs.com/l8l8/p/8991938.html