jQuery类库

"""
IE浏览器:前端针对IE有时候需要单独再编写一份代码
"""

Write less, do more  写的更少做的更多

1.加载速度快
2.选择器更多更好用
3.一行代码走天下
4.支持ajax请求(重点)
5.兼容多浏览器

准备工作
	1.下载核心文件到本地引入(没有网络也可以使用)
    	<script src="jQuery3.6.js"></script>
 	2.CDN网络资源加载(必须有网络才可以使用)
    	https://www.bootcdn.cn/
    https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js
    https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.min.js
        
什么是CDN
	内容分发网络
    
jQuery导入之后需要使用关键字才可以使用
	默认的关键字就是jQuery但是不好输入 >>>:	$
    
jQuery封装了JS代码 让编写更简单 但是有时候JS代码更快


js代码与jQuery代码对比
    let pEle = document.getElementsByTagName('p')[0]
    undefined
    pEle.style.color = 'red'
    'red'
    pEle.nextElementSibling.style.color = 'green'

    $('p').first().css('color','yellow').next().css('color','blue')

image

标签对象与jQuery对象

1.不同的对象能够调用的方法是不同的
	在编写代码的时候一定要看清楚手上的是什么对象
2.两者可以互相转换
	变迁对象转jQuery对象
    $(标签对象)
    jQuery对象转标签对象
    jQuery对象[0]

jQuery查找标签

1.基本选择器

   $('#d1')		id选择器
	$('.c1')		class选择器
 	$('div')		标签选择器

2.组合选择器

	$('div#1')		查找id是d1的div标签
   	$('span.c1')	查看含有c1样式类的span标签
 	$('div,span,p')	 查找div或者span或者p标签
  	%('#d1,.c1,span') 查找id是d1的或者class含有c1的或者span标签

3.层级选择器

$('div p ')		查找div里面的所有后代p标签
   $('div>p')		查找div里面的儿子p标签
	$('div+p')		查找div同级别下紧挨着的p标签
   $('div~p')		查找div同级别下所有的p标签

4.属性选择器

$('[username]')			查找含有username属性名的标签
 	$('[username="jason"]')	查找含有username属性名并且值等于jason的标签
 	$('input[username="jason"]')

5.基本筛选器

	:first		第一个
  	 :last		最后一个
    :eq(index)	索引的等于index的那个元素
    :even		匹配所有索引值为偶数的元素
  	 :odd		匹配所有索引值为奇数的元素
    :gt(index)	匹配所有大于给定索引值的元素
    :lt(index)  匹配所有小于给定索引值的元素
    :not(元素选择器)		移除所有满足not条件的标签
 	 :has(元素选择器)	选取所有包含一个或多个标签在其内的标签(指的是从后代元素中找)
    $('li:first')	优化   $('li').first()

image

6.表单筛选器

	$(':text')		选择表单属性为text的表单
 	$('passoword')   选择表单属性为passowrd的表单
 	$(':checked')	 选择表单属性为checked的表单,但是也会找到selected表单
  	$('selected')	 选择表单属性为selected表单

image

7.筛选器方法

	$('#id').next()		某一个id标签下面的一个标签
  	$('#id').nextAll()   某一个id标签下面的全部标签
   $('#id').nextUntile('#i2')	某一个id标签下面找到后面的id标签位置
   $('#id').prev()		某一个id标签上面的一个标签
   $('#id').prevAll()	 某一个id标签上面的全部标签
	$("#id").prevUntil("#i2")	某一个id标签上面找到后面的id标签位置
    $("#id").parent()
    $("#id").parents()  // 查找当前元素的所有的父辈元素
    $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
    $("#id").children();// 儿子们
    $("#id").siblings();// 兄弟们

image

1.class操作
	addClass()	添加
  	removeClass() 移除
   hasClass()
	tonggleClass()
 2.位置操作
	$(window).scrollTop()
 3.文本操作
	text()			相当于js中的 	innerText = ''
    html()						   innerHTML = ''
    vla()							标签对象.value
    jQuery对象[0].files				files[0]
4.创建标签
	document.createElement()		$('<a>')
5.属性操作
	attr()/removeAttr()					 xxxAttribute()
	attr针对动态变化的属性获取会失真
 		prop('checked') prop('selected')
6.文档处理
	$(A).append(B)  //把B追加到A
   	$(A).appendTo(B) //把A追加到B
     	$(A).prepend(B)// 把B前置到A
	$(A).prependTo(B)// 把A前置到B
    
    $(A).after(B)// 把B放到A的后面
	$(A).insertAfter(B)// 把A放到B的后面
 	$(A).before(B)// 把B放到A的前面
	$(A).insertBefore(B)// 把A放到B的前面
    
    remove()// 从DOM中删除所有匹配的元素。
	 empty()// 删除匹配的元素集合中所有的子节点。

jQuery事件

JS绑定事件
	标签对象.on事件名 = function(){}
jQuery事件绑定:
    方式1:
        jQuery对象.事件名(){}
     方式2:
        jQuery对象.on('事件名',funtion(){})
ps:默认方式1,不行再选择方式2    

事件相关补充

1.取消后续事件
	事件函数的最后return false即可
2.阻止事件冒泡
	事件函数的最后return false即可
3.等待页面加载完毕再执行代码
	$(function(){})					缩略写法
 	$(document).ready(function(){})  完整写法
4.事件委托
	主要针对动态创建的标签也可以使用绑定的事件
   	$('body').on('click','button',function(){})
   将body内所有的单机事件委托给button标签执行

jQuery动画效果(了解)

// 基本
show([s,[e],[fn]])
hide([s,[e],[fn]])
toggle([s],[e],[fn])
// 滑动
slideDown([s],[e],[fn])
slideUp([s,[e],[fn]])
slideToggle([s],[e],[fn])
// 淡入淡出
fadeIn([s],[e],[fn])
fadeOut([s],[e],[fn])
fadeTo([[s],o,[e],[fn]])
fadeToggle([s,[e],[fn]])
// 自定义(了解即可)
animate(p,[s],[e],[fn])

作业讲解

1.校验用户数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jQuery_ad.js"></script>
</head>
<body>
    <div>
        <p>username:
            <input type="text" id="d3">
            <span style="color: red"></span>
        </p>
        <p>password:
            <input type="password" id="d2">
            <span style="color: red"></span>
        </p>
        <button id="d1" value="提交">提交</button>
    </div>
    <script>
        let userEle = document.getElementById('d3')
        let bueEle = document.getElementById('d1')
        let passEle = document.getElementById('d2')
        //给提交按钮绑定单机事件
        bueEle.onclick = function (){
            if (userEle.value ==='jason'){
                userEle.nextElementSibling.innerText = '用户名不能是jason'
            }
            if (passEle.value === '123'){
                passEle.nextElementSibling.innerText = '密码不能是123'
            }
        }
        //给两个input输入绑定聚焦就清掉span的文本
        userEle.onfocus = function (){
            userEle.nextElementSibling.innerText = ''
        }
        passEle.onfocus = function (){
            passEle.nextElementSibling.innerText = ''
        }
    </script>
</body>
</html>

2.页面计时器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jQuery_ad.js"></script>
</head>
<body>
    <div>
        <input type="text" id="d2">
        <button id="d1" >开始</button>
        <button id="d3">结束</button>
    </div>
    <script>
        let startEle = document.getElementById('d1')
        let endEld = document.getElementById('d3')
        let inputEle = document.getElementById('d2')
        //定时任务的函数
        function showTime(){
            let currentTime = new Date()
            inputEle.value = currentTime.toLocaleTimeString()
            //这里用对了对象的内置方法将格式化时间转字符串
        }
        //全局定义一个存储计时器的变量名
        let t
        startEle.onclick = function (){
            if (!t){
                t = setInterval(showTime,1000)//表示如果t没有值就绑定循环调用函数,每次增加1秒
            }
        }
        endEld.onclick = function (){
            clearInterval(t)//点击结束按钮就暂停循环定时
            t = null //清空t
        }
    </script>
</body>
</html>
posted @ 2022-12-06 20:15  雪语  阅读(35)  评论(0编辑  收藏  举报