jQuery基础知识总结

声明:该总结基于B站UP主——李南江老师的课程及其资料。(如侵权请联系作者删除)

一、原生JS和jQuery的区别

1.原生JS和jQuery入口函数的加载模式不同
2.原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
3.jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕再执行
4.原生的JS如果编写了多个入口函数,后面编写的会覆盖前面编写的
5.jQuery中编写多个入口函数,后面的不会覆盖前面的

JavaScriptjQuery
入口函数加载

DOM 加载完毕

图片加载完毕

才执行

仅 DOM 加载完毕就执行
多入口函数加载规则后面编写入口函数的会覆盖前面编写的,只执行后写的入口函数不会覆盖前面的,两个函数会先后执行
//以下是原生js代码

window.onload = function(ev) {
    //原生js 取 DOM 元素,后面的 [0] 表示从上到下第0个images元素 (也就是第一个)
    var images = document.getElementsByTagName("images")[0];
    console.log(images);

    var width = getComputedStyle(images).width; //取这个图片的高度
    console.log("onload", width);
}

//以下是jquery代码

$(document).ready(function () {
    var $images = $("images");// 1.通过jQuery入口函数可以拿到DOM元素
    console.log($images);

    var $width = $images.width();// 2.通过jQuery入口函数不可以拿到DOM元素的宽高
    console.log("ready", $width);
});

/*
* 1.原生JS和jQuery入口函数的加载模式不同
* 2.原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
* 3.jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕再执行
*/


//原生

window.onload = function (ev) {
    alert("hello lnj1");
}
window.onload = function (ev) {
    alert("hello lnj2");
}

//jquery

$(document).ready(function () {
    alert("hello lnj1");
});
$(document).ready(function () {
    alert("hello lnj2");
});

/*
1.原生的JS如果编写了多个入口函数,后面编写的会覆盖前面编写的
2.jQuery中编写多个入口函数,后面的不会覆盖前面的
*/

二、jQuery入口函数写法

推荐写法:

$(function(){

        alert("Hello Jquery!");

});

其他写法如下:

// 1.第一种写法
$(document).ready(function () {
    alert("hello lnj");
});


// 2.第二种写法
jQuery(document).ready(function () {
    alert("hello lnj");
});


//3.第三种写法 (推荐)
$(function () {
    alert("hello lnj");
});


//4.第四种写法
jQuery(function () {
    alert("hello lnj");
});

三、jQuery冲突问题解决

Jquery作者使用$符号,让你“做得更多,写得更少”,那么其他框架的作者也可能会用到$符号进行操作,这个时候就要考虑到冲突问题。

解决步骤和思路如下:

1.释放$的使用权

使用释放函数:jQuery.noConflict();

注意点:

(1)释放操作必须在编写其它jQuery代码之前编写

(2)释放之后就不能再使用$,改为使用jQuery的方式去写。


 2.自定义一个访问符号

用一个变量去接收:var abc = jQuery.noConflict();

注意点:

(1)接收完再用这个变量(abc)替代掉$,再使用jqeury进行编写,其他与第一点保持一致。

//原$没有释放时候的写法

$(function () {
    alert("hello lnj");
});

//1.
jQuery.noConflict(); //释放$使用权

jquery(function () {
    alert("hello lnj");
});

//2.
var abc = jQuery.noConflict(); //将$使用权赋值给abc变量

abc(function () { //用abc变量去替代原有的$
    alert("hello lnj");
});


//释放函数必须放在函数执行前,否则无效。

四、jQuery的核心函数

jQuery的核心函数  -> $();

核心函数可以接收三大类:

1.函数

2.字符串

3.DOM元素

// 1.接收函数

$(function () {
    alert("hello lnj");
});



// 2.接收字符串

// 2.1接收字符串选择器
// 返回一个jQuery对象, 对象中保存了找到的DOM元素

$(function () {
    var $box1 = $(".box1");
    var $box2 = $("#box2");

    console.log($box1);
    console.log($box2);
});

// 2.2接收字符串代码片段
// 返回一个jQuery对象, 对象中保存了创建的DOM元素

$(function () {
    var $p = $("<p>我是段落</p>");
    console.log($p);
    $box1.append($p);
});

// 3.接收DOM元素

$(function () {
    var span = document.getElementsByTagName("span")[0]; 
    // 原生的js执行后会被包装成一个jQuery对象返回给我们
    console.log(span);
    
    //jquery
    var $span = $(span);
    console.log($span);
});

五、jQuery对象实际上就是一个伪数组

让我们来看看控制台中 它和素组的区别和共同点:(上面是对象,下面是数组)

六、静态方法和实例方法

// 1.定义一个类
function AClass() {
    AClass.staticMethod = function() {  // 2.给这个类添加一个静态方法 
    alert("staticMethod"); // 直接添加给类的就是静态方法
    }
    
    // 静态方法通过类名调用
    AClass.staticMethod();

    AClass.prototype.instanceMethod = function() { // 3.给这个类添加一个实例方法
    alert("instanceMethod"); //prototype 是关键字哦!
    }
    
    // 实例方法通过类的实例调用
    var a = new AClass();

    // 通过实例调用实例方法
    a.instanceMethod();
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值