JS第八天 jQuery

1. jQuery概述

1.1 JS库

        即library,是一个封装好的特定的结合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如订花animate, hide, show等。简单理解,就是一个JS文件,里面对我们原生JS代码进行了封装,存到里面,这样我们可以快速高效的使用好这些封装的功能。比如jQuery就是为了快速方便的操作DOM,里面都是方法。

常见JS库:

jQuery

Prototype

YUI

Dojo

Ext JS

移动端的zepto

1.2 jQuery

概念

宗旨:write less, do more

j: JavaScript query: 查询    jQuery把DOM操作做了封装,可以快速地查询使用里面的功能

学习jQuery的本质: 学习调用这些函数

优点:

轻量,兼容,链式编程,隐式迭代,对事件,样式,动画支持,大大简化了DOM操作;支持插件扩展开发,丰富的第三方插件:树形菜单,日期控件,轮播图;免费开源。

2 基本使用

2.1 下载

网址:https://jquery.com/

2.2 使用:引入jQuery文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src='jquery.mini.js'></script>
</head>
<body>
    
</body>
</html>

2.3 jQuery的入口函数

1

$(function(){
    ...//DOM加载完成的入口
});

2

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

2.4 jQuery的顶级对象$

1. $其实是jquery的别称,可以互相替代,一般用$

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

2.5 dom对象和jQuery对象

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

2. 用jq获取就是jq对象 jq对象本质:利用$对dom对象进行包装,产生伪数组存储的新对象

3. 什么对象就用什么方法

DOM和JQ可以互相转换:

        原生JS比Jquery等大,原生的一些属性和方法没有给我们封装,要想使用这些属性和方法需要把jQuery对象转换为DOM对象才可以使用

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

2. jQuery对象转换为DOM对象:$('div)[index]    /   $('div').get(index)

3 jQuery常用API

3.1 JQ选择器

3.1.1 $("选择器") //CSS选择器加引号

ID选择器  $('#div')

全选选择器 $('*')

类选择器 $(".class")

标签选择器 $(''div")

并集选择器 $("div,p,li")

交集选择器 $("li.current")

3.1.2 层级选择器

子代选择器:$("ul>li"); 不会获取孙子级元素

后代选择器:$("ul li"); 使用空格,获取ul下所有级别的元素

3.1.3 JQ设置样式 隐式迭代

把匹配的所有元素内部进行遍历循环,给每一个元素添加CSS方法。

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

3.1.4 筛选选择器

:first $('li:first') 获取第一个元素

:last $('li:last') 获取最后一个元素

:eq(index) $(''li:eq(2)'') 获取到li元素中索引号为2的元素

:odd $("li:odd") 获取到的li元素中,索引号为奇数的元素

:even 偶

3.1.5 筛选方法

parent() $("li").parent()

children(selector) $("ul").children("li") 子代

find(selector) 后代

siblings(selector) 兄弟结点

nextAll([expr]) 当前元素之后的所有同辈元素

prevtAll([expr]) 当前元素之前的所有同辈元素

hasClass(class) 检查当前元素是否含有某个类

eq(index) 查找第index+1个元素

3.1.6 JQ排他思想

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery.mini.js"></script>
</head>
<body>
    <div>
        <button>按钮</button>
        <button>按钮</button>
        <button>按钮</button>
        <button>按钮</button>
        <button>按钮</button>
        <button>按钮</button>
    </div>
    <script>
        $(function(){
            $('button').click(function(){
                $(this).css("background", "pink");
                $(this).siblings("button").css("background", "");
            })
        })
    </script>
</body>
</html>

案例:淘宝精品服饰

3.1.7 链式编程

为了节省代码,看起来更优雅

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

3.2 JQ样式操作

3.2.1 操作CSS方法 可以css也可以操作类

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

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

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

更改多个样式

$(this).css({"color":"white", "font-size": "20px", "width": 200});  //不是属性要加引号

3.2.2 样式操作类 

addClass()

removeClass()

toggleClass()

3.2.3 类操作和className的区别

原生JS中className会覆盖元素原先里面的类名。jQuery里面类操作只是对指定类进行操作,不影响原先的类名。jQuery里面的类操作只是对指定类进行操作,不影响原先的类名。

案例:tab切换栏

3.3 jQuery效果(动画效果)

显示隐藏

show()

hide()

toggle()

滑动

slideShow()

slideUp()

slideToggle()

淡入淡出

fadeIn()

fadeOut()

fadeToggle()

fadeTo()

自定义动画

animate()

4 显示隐藏

1.显示隐藏语法规范

show([speed, [easing], [fn]]) 参数都可省略

speed: 速度, slow, normal, fast , 1000(单位:毫秒)

easing: 切换效果 swing(慢,快,慢),linear(线性匀速)

fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

2.滑动效果及事件切换:

slideDown([s], [e], [fn])

slideUp([s, [e] ,[fn]])

slideToggle([s], [e], [fn])

3. 事件切换

hover([over,] out)

4. 动画队列及停止排队方法

1.动画或效果队列

动画或效果一旦触发,就会执行,如果多次触发,就会造成多个动画或效果排队执行。

2.停止排队 stop() 要写在slideToggle()前面

5 淡入淡出及突出显示案例

fadeIn([speed, [easing], [fn]])

fadeOut...

fadeToggle...

调整透明度fadeTo()

fadeTo([[]speed], opacity, [easing], [fn])

opacity 透明度 0~1

速度和透明度必须写

6 jQuery自定义动画animate方法

animate(params, [speed], [easing], [fn])
//params: 想要更爱的样式属性,以对象形式传递,必须写,属性名不用带英豪,如果是符合属性则需要采取驼峰命名法borderLeft。
//speed预定速度
//easing:切换效果

7王者荣耀手风琴案例分析

5 jQuery属性操作

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

固有属性就是元素自身自带的属性,比如<a>里面的href,比如<input>元素里面的type

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

5.3 数据缓存 data()

6 jQuery内容文本值:主要针对元素的内容还有表单值的设置

html()获取元素内容

text()获取文本内容,不包括标签

val()获取表单值

7 jQuery元素操作

遍历,创建,添加,删除

1.遍历:隐式迭代是对同一元素做相同的操作,而遍历是对元素做不同操作

语法1:
$("div").each(function (index, domEle) {xxx; })

语法2:

$.each(obaject, function(index, element) {xxx; })

可用于遍历任何对象,主要用于数据处理,比如数组

index是索引号,element是遍历内容。 

//$.each(遍历对象, function(索引号, 元素)){
//    console.log(...)
//}
var arr = ["andy", "anna", "jennie"];
$.each(arr, function(i ,ele)){
    console.log(i);
    console.log(ele);
}

2. 创建元素:

语法:

$("<li></li>");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值