黑马前端pink老师——jQuery入门基础学习笔记

本文将黑马前端 pink老师讲解的 jQuery 入门基础课笔记整理了一遍,包括 jQuery 概述、基本使用、常用 API、jQuery 事件、jQuery 插件其他方法等知识点。

目录

Day 1 - jQuery 入门

01 - 学习目标(target)

02 - jQuery 概述 

JavaScript 库

jQuery 的概念

03 - jQuery 的基本使用

jQuery 的下载

jQuery 的使用步骤

jQuery 的入口函数

jQuery 的顶级对象 $ 

jQuery 对象和 DOM 对象 

Day 2 - jQuery 常用API

01 - 学习目标(target)

02 - jQuery 选择器 

jQuery 基础选择器 

jQuery 层级选择

隐式迭代(重要)

jQuery 筛选选择器

jQuery 筛选方法(重点)

jQuery 里面的排他思想

链式编程

03 - jQuery 样式操作

操作 css 方法 

设置类样式方法 

类操作与className区别

04 - jQuery 效果

显示隐藏切换效果

滑动效果

事件切换 

动画队列及其停止排队方法

淡入淡出效果

自定义动画 animate

05 - jQuery 属性操作

设置或获取元素固有属性值 prop() 

设置或获取元素自定义属性值 attr()

数据缓存 data() 

06 - jQuery 内容文本值

普通元素内容 html()( 相当于原生inner HTML) 

普通元素文本内容 text() (相当与原生 innerText)

表单的值 val()( 相当于原生value)

07 - jQuery 元素操作

遍历元素 

创建元素

添加元素

删除元素 

08 - jQuery 尺寸、位置操作

jQuery 尺寸 

jQuery 位置

Day 3 - jQuery 事件 

01 - 学习目标(target)

02 - jQuery 事件注册 

单个事件注册 

03 - jQuery 事件处理

事件处理 on() 绑定事件 

案例:微博发布效果

 事件处理 off() 解绑事件

自动触发事件 trigger()

04 - jQuery 事件对象

Day 4 jQuery 其他方法

01 - 学习目标(target) 

02 - jQuery 拷贝对象 

03 - 多库共存

04 - jQuery 插件

jQuery 插件常用的网站

jQuery 插件使用步骤 

jQuery 插件演示 

bootstrap JS 插件


Day 1 - jQuery 入门

01 - 学习目标(target)

  • 能够说出什么是 jQuery 
  • 能够说出 jQuery 的优点
  • 能够简单使用 jQuery
  • 能够说出 DOM 对象和 jQuery 对象的区别

02 - jQuery 概述 

JavaScript 库

JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就 是在这个库中,封装了很多预先定义好的函数在里面,比如动画 animate、hide、show,比如获取元素等。 

常见的 JavaScript 库

  • jQuery
  • Prototype
  • YUI
  • Dojo
  • Ext JS
  • 移动端的zepto

这些库都是对原生 JavaScript 的封装,内部都是用 JavaScript 实现的,我们主要学习的是 jQuery

jQuery 的概念

jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“write Less,Do More”,即倡导写更少的代码, 做更多的事情。 

j 就是 JavaScript; Query 查询; 意思就是查询 js,把 js 中的DOM操作做了封装,我们可以快速的查询使用里 面的功能。

jQuery 封装了 JavaScript 常用的功能代码,优化了 DOM 操作、事件处理、动画设计和 Ajax 交互。

学习 jQuery 本质: 就是学习调用这些函数(方法)。

 优点:

  •  轻量级。核心文件才几十kb,不会影响页面加载速度
  •  跨浏览器兼容。基本兼容了现在主流的浏览器
  •  链式编程、隐式迭代
  •  对事件、样式、动画支持,大大简化了DOM操作
  •  支持插件扩展开发。有着丰富的第三方的插件,例如: 树形菜单、日期控件、轮播图等
  •  免费、开源

03 - jQuery 的基本使用

jQuery 的下载

官网地址: https://jquery.com/

 版本:

  •  1x :兼容 IE 678 等低版本浏览器, 官网不再更新
  •  2x :不兼容 IE 678 等低版本浏览器, 官网不再更新
  •  3x :不兼容 IE 678 等低版本浏览器, 是官方主要更新维护的版本

各个版本的下载:https://code.jquery.com/ 

jQuery 的使用步骤

1. 引入 jQuery 文件

2. 使用即可

jQuery 的入口函数

第一种 

$(function () { 
     ... // 此处是页面 DOM 加载完成的入口
}) ;

第二种 

$(document).ready(function(){
   ... // 此处是页面DOM加载完成的入口
});

1. 等着 DOM 结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成,jQuery 帮我们完成了封装。

2. 相当于原生 js 中的 DOMContentLoaded。

3. 不同于原生 js 中的 load 事件是等页面文档、外部的 js 文件、css文件、图片加载完毕才执行内部代码。

4. 更推荐使用第一种方式。

jQuery 的顶级对象 $ 

1. $ 是 jQuery 的别称,在代码中可以使用 jQuery 代替 $,但一般为了方便,通常都直接使用 $。

2. $ 是 jQuery 的顶级对象, 相当于原生 JavaScript 中的 window。把元素利用 $ 包装成 jQuery 对象,就可以调用 jQuery 的方法。

jQuery 对象和 DOM 对象 

1. 用原生 JS 获取来的对象就是 DOM 对象 

2. jQuery 方法获取的元素就是 jQuery 对象。

3. jQuery 对象本质是: 利用 $ 对 DOM 对象包装后产生的对象(伪数组形式存储)。

注意:

只有 jQuery 对象才能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 方法。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div></div>
    <span></span>
    <script>
        // 1. DOM 对象:  用原生js获取过来的对象就是DOM对象
        var myDiv = document.querySelector('div'); // myDiv 是DOM对象
        var mySpan = document.querySelector('span'); // mySpan 是DOM对象
        console.dir(myDiv);
        // 2. jQuery对象: 用jquery方式获取过来的对象是jQuery对象。 本质:通过$把DOM元素进行了包装
        $('div'); // $('div')是一个jQuery 对象
        $('span'); // $('span')是一个jQuery 对象
        console.dir($('div'));
        // 3. jQuery 对象只能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 属性和方法
        // myDiv.style.display = 'none';
        // myDiv.hide(); myDiv是一个dom对象不能使用 jquery里面的hide方法
        // $('div').style.display = 'none'; 这个$('div')是一个jQuery对象不能使用原生js 的属性和方法
    </script>
</body>

</html>

jQuery 对象和 DOM 对象的相互转换

因为原生 js 比 jQuery 更大,原生的一些属性和方法 jQuery 没有给我们封装。要想使用这些属性和方法需要把 jQuery 对象转换为 DOM 对象才能使用。

1. DOM 对象转换为 jQuery 对象 :$(DOM对象)

$('div')

2. jQuery 对象转换为 DOM 对象 (两种方式)

第一种:

$('div') [index] // index 是索引号

第二种:

$('div') .get(index) // index 是索引号

Day 2 - jQuery 常用API

01 - 学习目标(target)

  •  能够写出常用的 jQuery 选择器
  •  能够操作 jQuery 样式
  •  能够写出常用的 jQuery 动画
  •  能够操作 jQuery 属性
  •  能够操作 jQuery 元素
  •  能够操作 jQuery 元素尺寸、位置

02 - jQuery 选择器 

jQuery 基础选择器 

原生 JS 获取元素方式很多,很杂,而且兼容性情况不一致,因此 jQuery 给我们做了封装,使获取元素统一标准。 

$(“选择器”) // 里面选择器直接写 CSS 选择器即可,但是要加引号

jQuery 层级选择

知识铺垫

jQuery 设置样式

$('div').css('属性', '值')

隐式迭代(重要)

遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代

简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作, 方便我们调用。 

隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加 css 的方法。

jQuery 筛选选择器

 实例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <ul>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
    </ul>
    <ol>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
        <li>多个里面筛选几个</li>
    </ol>
    <script>
        $(function() {
            $("ul li:first").css("color", "red");
            $("ul li:eq(2)").css("color", "blue");
            $("ol li:odd").css("color", "skyblue");
            $("ol li:even").css("color", "pink");
        })
    </script>
</body>

</html>

jQuery 筛选方法(重点)

 重点记住: parent() 、children()、 find()、 siblings() 、eq()

 实例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="yeye">
        <div class="father">
            <div class="son">儿子</div>
        </div>
    </div>

    <div class="nav">
        <p>我是屁</p>
        <div>
            <p>我是p</p>
        </div>
    </div>
    <script>
        // 注意一下都是方法 带括号
        $(function () {
            // 1. 父  parent()  返回的是 最近一级的父级元素 亲爸爸
            console.log($(".son").parent());
            // 2. 子
            // (1) 亲儿子 children()  类似子代选择器  ul > li
            // $(".nav").children("p").css("color", "red");
            // (2) 可以选里面所有的孩子 包括儿子和孙子  find() 类似于后代选择器
            $(".nav").find("p").css("color", "red");
            // 3. 兄
        });
    </script>
</body>

</html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <ol>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li class="item">我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
    </ol>
    <ul>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
    </ul>
    <div class="current">俺有current</div>
    <div>俺木有current</div>
    <script>
        // 注意一下都是方法 带括号
        $(function() {
            // 1. 兄弟元素siblings 除了自身元素之外的所有亲兄弟
            $("ol .item").siblings("li").css("color", "red");
            // 2. 第n个元素
            var index = 2;
            // (1) 我们可以利用选择器的方式选择
            // $("ul li:eq(2)").css("color", "blue");
            // $("ul li:eq("+index+")").css("color", "blue");
            // (2) 我们可以利用选择方法的方式选择 更推荐这种写法
            // $("ul li").eq(2).css("color", "blue");
            // $("ul li").eq(index).css("color", "blue");
            // 3. 判断是否有某个类名
            console.log($("div:first").hasClass("current"));
            console.log($("div:last").hasClass("current"));


        });
    </script>
</body>

</html>

jQuery 里面的排他思想

想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <script>
        $(function() {
            // 1. 隐式迭代 给所有的按钮都绑定了点击事件
            $("button").click(function() {
                // 2. 当前的元素变化背景颜色
                $(this).css("background", "pink");
                // 3. 其余的兄弟去掉背景颜色 隐式迭代
                $(this).siblings("button").css("background", "");
            });
        })
    </script>
</body>

</html>

链式编程

链式编程是为了节省代码量,看起来更优雅。

$(this).css('color', 'red').sibling().css('color', '');

 使用链式编程一定注意是哪个对象执行样式。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    woshi body 的文字
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <script>
        $(function() {
            // 1. 隐式迭代 给所有的按钮都绑定了点击事件
            $("button").click(function() {
                // 2. 让当前元素颜色变为红色
                // $(this).css("color", "red");
                // 3. 让其余的姐妹元素不变色 
                // $(this).siblings().css("color", "");
                // 链式编程
                // $(this).css("color", "red").siblings().css("color", "");
                // 我的颜色为红色, 我的兄弟的颜色为空
                // $(this).siblings().css('color', 'red');
                // 我的兄弟变为红色  ,我本身不变颜色
                $(this).siblings().parent().css('color', 'blue');
                // 最后是给我的兄弟的爸爸 body 变化颜色 

            });
        })
    </script>
</body>

</html>

03 - jQuery 样式操作

操作 css 方法 

jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式。

1. 参数只写属性名,则是返回属性值

$(this).css(''color'');

 2. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号

$(this).css(''color'', ''red'');

3. 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以不用加引号

$(this).css({ "color":"white","font-size":"20px"});

 实例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        // 操作样式之css方法
        $(function() {
            console.log($("div").css("width"));
            // $("div").css("width", "300px");
            // $("div").css("width", 300);
            // $("div").css(height, "300px"); 属性名一定要加引号
            $("div").css({
                width: 400,
                height: 400,
                backgroundColor: "red"
                    // 如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
            })
        })
    </script>
</body>

</html>

设置类样式方法 

作用等同于以前的 classList,可以操作类样式, 注意操作类里面的参数不要加点。

1. 添加类

$('div').addClass('current');

 2. 移除类

$('div').removeClass('current');

3. 切换类

$('div').to
  • 7
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值