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>

 

posted @ 2018-04-11 14:46  PaiPai_hu  阅读(155)  评论(0编辑  收藏  举报