jQuery记录1(入门)

134 阅读1分钟

以下摘自百度百科

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

正文

首先引入jQuery

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

jQuery是用链式语法写的,比如:

$('.demo').html('Simba').css('color','red').css('border','1px solid red').css('cursor','pointer').click(function(){
             $(this).css('color','green')
          })

(当html 有参数时则赋值innerHTML 无参数时则取值)

(当css 有2个参数时则赋值style 1个参数时则取值 参数为对象 则赋多个值)例如:

$('.demo').html('Simba').css({
            border: '1px solid red',
            color: 'red'
          })

这些方法的内部还是用了以下这样的方法

只不过是进行了封装处理,才可以一直 . 下去

为什么它可以连续 . 下去呢,因为它里面写了类似于这样的代码

let z = {
             a() {
                 console.log('a');
                 return this
             },
             b() {
                 console.log('b');
                 return this
             },
             c() {
                 console.log('c');
                 return this
             }
        }
        console.log(z.a());
        z.a().b()
        z.c().a().b()

这样就可以链式调用了。

在写jQuery的时候如果想用到js的方法,那么需要转化一下才能用,因为jQuery里没有包含js的方法,可以用以下方法转换:

jq=>js    $(xxx)[0]
          例如:console.log($('.demo')[0].offsetLeft);
          或者
          $(xxx).get(0)

同理,写js时想用jQuery的方法也需要转换一下:

//js=>jq    $(js_dom)
            例如:$(demo1).css('color', 'red')

为什么可以这样转换,因为它里面写了类似于这样的代码:

function $(args) {

             if (typeof args === 'string') {
                  //按选择器查找
             } else if (typeof args === 'object') {
                  //包装dom元素为jq对象
             }else{
                  //
             }
        }

以上。