天天看點

jQuery1

jQuery的優缺點與版本,和引入方法:

* jQuery

* 用原生js封裝的插件庫

*

* 優點:

* 1.開發效率大大的提高。

* 2.擷取節點變得非常的便捷

* 3.某些版本把IE678的相容都做好了

* 4.做動畫的時候,有很多API提供給使用者

*

* 缺點:

* 1.隻使用少部分功能的時候,也必須把整個庫引入進來,

* 2.速度慢,沒有原生的快。

*

* 版本:

* 1.x.x 相容IE678

* 2.x.x 采用了大部分的css3的新屬性,放棄了IE678的相容

* 3.x.x 實在2的基礎上,來完善或者優化性能。3是2的更新版,也就是說如果不考慮相容IE678的問題,那麼就采用最新版

1  <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
2     <!--<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>-->      

基本用法:

$():括号内有三種内容,而後可通過點進行屬性和方法的操作

  string 選擇器 / 标簽結構(建立你寫的結構的标簽)

   object DOM節點

   function DOM結構加載完成後執行的回調函數 這個函數可以接受一個形參,這個形參代表了 $ 在這個函數内部的表現形式

1     var box = document.querySelectorAll("#box p");
2 
3     $("<div><span>hello</span></div>").appendTo(document.body)
4 
5     
6 //$(box).appendTo(document.body)      

eq()方法的使用

1 <body>
 2     <p></p>
 3     <p></p>
 4     <p></p>
 5 <script>
 6     /*
 7     *       eq()
 8     *           接收一個數字(序号),傳回一個獨立的jq對象
 9     *
10     * */
11     $("p").eq(1).html(123)
12 
13 
14 
15 </script>
16 </body>      

js對象和jq對象的互相轉換

  * jq對象轉js對象

    * .get(傳序号)

    * [下标]

*

  * js對象轉jq對象

    * $(DOM節點)

var box = document.getElementById("box");
    //$("#box").get(0).innerHTML = 123;jq轉換為js
    //$("#box")[0].innerHTML= "456"
    //$(box).html(789)  js轉換為jq      

jq的牛逼之處:自帶周遊

  

1 <body>
 2     <p>001</p>
 3     <p>002</p>
 4     <p>003</p><p>001</p>
 5     <p>002</p>
 6     <p>003</p><p>001</p>
 7     <p>002</p>
 8     <p>003</p><p>001</p>
 9     <p>002</p>
10     <p>003</p>
11     <script>
12 
13         $("p").css("color" , "red");
14 
15 
16 
17 
18     </script>
19 </body>      

jq的周遊:

each()接收一個函數

* 這個函數裡的this指向目前序号對應的對象, 這個this是一個js對象

* 函數可以設定一個形參,代表目前對象的序号

ps:jq的代碼不能跟js的代碼混合使用?

* 錯,邏輯錯誤。因為jq就是用原生js封裝的。是以jq的代碼也是js的代碼。

* 如果說需要使用jq來寫,那麼請盡量使用jq的文法來寫,除了非必須情況,請不要混着寫。

<body>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

<script>
    /*
    *   each()接收一個函數
    *       這個函數裡的this指向目前序号對應的對象, 這個this是一個js對象
    *       函數可以設定一個形參,代表目前對象的序号
    *
    *   jq的代碼不能跟js的代碼混合使用?
    *       錯,邏輯錯誤。因為jq就是用原生js封裝的。是以jq的代碼也是js的代碼。
    *       如果說需要使用jq來寫,那麼請盡量使用jq的文法來寫,除了非必須情況,請不要混着寫。
    *
    * */

    $("p").each(function (i) {
        //this.innerHTML = i;
        $(this).html(i)
    });


</script>

</body>      

length是屬性,index()是方法傳回索引

$的一些API:

1.屬性API:

1 <body>
 2 <div id="box" class="on wrap"></div>
 3 <input type="text" value="123456798">
 4 
 5 <script>
 6     /*
 7     *   attr    操作自定義标簽屬性
 8     *   prop    操作合法的标簽屬性
 9     *
10     *   删除屬性
11     *   removeAttr
12     *   removeProp
13     * 
14     * 
15     *   jq方法的傳回值    
16     *       要看最後一個方法時什麼性質的;
17     *           假如是 擷取/讀取 性質的。那麼一般傳回擷取到的内容(一般是string類型)
18     *           假如說是 設定 性質的,那麼一般會把對用這個方法的對象傳回。
19     * 
20     * 
21     * */
22     /*var a  = $("input").prop("checked");
23     alert(a)*/
24 
25     //$("#box").attr("goudan","456").removeAttr("id");
26     
27 
28     /*
29     *
30     *   addClass        添加類名
31     *   removeClass     删除類名
32     *   toggleClass     如果有就删除,如果沒有就添加
33     *
34     * */
35 
36     //$("#box").prop("class" , "");
37 
38 
39     /*
40     *   html()      ===  innerHTML
41     *   text()      ===  innerText
42     *   val()       ===  value
43     *
44     *
45     *
46     * */
49     //$("#box").text(123)
50     alert($("input[type=text]").val())
51 
52 </script>
53 </body>      

2.文檔出來API:

1 <body>
 2 <div class="box"></div>
 3 <script>
 4     /*
 5     *   append
 6     *   appendTo
 7     *
 8     *
 9     *   prepend
10     *   prependTo
11     *
12     * */
13 
14     //var $div = $("<div></div>");
15 
16     //$div.html(123)
17     //$("#box").append($div.html(123))
18     //$div.html(123).appendTo($("#box"))
19     //$("#box").prepend($div.html(123))
20 
21     /*
22     *   after   添加到誰後面(成為弟弟元素)
23     *   before  添加到誰前面(成為哥哥元素)
24     *
25     *
26     * */
27 
28     //$("#box").before($div)
29 
30     /*
31     *   wrap    給比對的對象加一個父級
32     *   unwrap  把父級元素幹掉
33     *   wrapAll
34     *   wrapInner
35     *
36     *
37     * */
38 
39 
40     //$("#box2").wrap("<span></span>");
41     //var a = $("span").unwrap();  //傳回前面的對象
42 
43     //console.log(a)
44 
45 
46     //$("div").wrapAll("<div></div>");
47 
48     //$("div").wrapInner("<span></span>");
49 
50 
51     //$("p").wrap("<div></div>")
52 
53     /*
54     *   replaceWith
55     *   replaceAll
56     *       了解一下就行
57     *
58     *
59     *
60     * */
61 
62     //$("p").replaceWith("<div></div>")
63     //$("<span>123</span>").replaceAll($("#p2"))
64     
65     
66     
67     /*
68     *   empty   清空子節點           傳回調用此方法的對象
69     *   remove  删除自己(自殺)  不會保留事件        傳回被删除對象(後期可以添加回去)
70     *   detach  删除自己(自殺)  會保留事件         傳回被删除對象(後期可以添加回去)
71     *   clone   克隆對象    傳回克隆對象
72     * 
73     * 
74     * 
75     * */
76     
77     //var a = $("#box").empty();    //
78     //console.log(a)
79     
80 
81     
82     
83     /*var a = $("#box").remove();
84     $(document.body).append(a)*/
85     /*var  a=  $("#box").detach();
86     $(document.body).append(a)*/
87 
88     var a = $(".box").clone();
89 
90     $(document.body).append(a);
91 
92     $(".box").click(function () {
93         alert($(".box").length)
94     });
95     
96 
97 </script>
98 </body>      

3.cssAPI:

1 <body style="height:2000px">
 2 <div id="box">
 3     <div id="box2"></div>
 4 </div>
 5 <script>
 6     /*
 7     *   css()
 8     *
 9     * */
10 
11     //alert($("#box").css("color"))
12 
13 
14     /*
15     *   offset  到文檔   設定的時候會進行計算,實際我們設定的值是到文檔的距離
16     *
17     *   position    到定位父級   隻能擷取 不能設定
18     *
19     *
20     * */
21 
22     /*var a = $("#box").offset().top;
23     
24     console.log(a)*/
25 
26     /*var a  = $("#box2").position().top;
27     console.log(a)*/
28 
29     /*var a = $("#box2").position();
30 
31     console.log(a)*/
32 
33 
34 
35     /*
36     *   scrollTop
37     *   scrollLeft
38     *       設定/擷取 滾動高度/寬度
39     *
40     * */
41     
42     /*$(document).click(function () {
43         alert($(this).scrollTop())
44     })*/
45     /*$(document).click(function () {
46         $(this).scrollTop(1500);
47     })
48     */
49     
50     
51     /*
52     *
53         *   height
54         *   width
55         *       擷取/設定  樣式寬高
56         *
57         *   innerWidth
58         *   innerHeight
59         *       擷取/設定  padding+樣式寬高
60         *
61         *   outerWidth
62         *   outerHeight
63         *       擷取/設定  border+padding+樣式寬高
64         *
65         *
66         *
67     * 
68     * */
69     
70     $("#box").outerWidth(500);
71 
72 </script>
73 </body>      

轉載于:https://www.cnblogs.com/letgo-doo/p/8795635.html

繼續閱讀