jQuery教程

jQuery介绍

jQuery是一个轻量级的、兼容多浏览器的JavaScript库。

jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。

jQuery的优势

  1. 一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
  2. 丰富的DOM选择器,jQuery的选择器用起来很方便,
  3. 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
  4. 事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
  5. Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
  6. 跨浏览器兼容。jQuery基本兼容了现在主流的浏览器
  7. 插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件

jQuery对象

jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法。

通过查询标签的方法 把一个标签生成为 jQuery对象

选择标签

ID选择器

xxxEle = $('#id')

通过标签id获得标签对象

标签选择器

xxxEle = $('tagName')

通过标签名查找标签,获得一个对象数组里面有多个标签对象

class选择器

xxxEle = $('.className')

通过标签内classs属性的name来查找标签

联合查询

$('div.c1')
//找到所有拥有C1 class类名的 div标签

$("x y");// x的所有后代y(子子孙孙)
$("x > y");// x的所有儿子y(儿子)
$("x + y")// 找到所有紧挨在x后面的y
$("x ~ y")// x之后所有的兄弟y

x和y可以为任意选择器

基本筛选器

xxxEle = $('tagName')

$('tagName').first()
//查询这个标签数组里面的第一个

$('div.c1').last()
//div标签里面class属性为c1的标签数组 里最后一个

$('div.c1').eq(2)
//div标签里面class属性为c1的标签数组 索引为2的标签对象

$('div.c1:gt(1)')
//数组内所有索引大于1的标签

$('div.c1:lt(1)')
//数组内所有索引小于1的标签



$("div:has(h1)")// 找到所有后代中有h1标签的div标签
$("div:has(.c1)")// 找到所有后代中有c1样式类的div标签
$("li:not(.c1)")// 找到所有不包含c1样式类的li标签
$("li:not(:has(a))")// 找到所有后代中不含a标签的li标签

属性选择器

$('[username]')
//查找到所有含有username属性名的标签

$('[username ="moon"]')
//查找到所有属性名为username和值为moon的标签


例子:
<input type="password">
<input type="checkbox">
$("input[type='checkbox']");// 取到checkbox类型的input标签
$("input[type!='text']");// 取到类型不是text的input标签

层级选择器

$('div p')
// 查询div标签里面的后代 p标签

$('div>p')
// 查询div标签里面的儿子标签 p

$('div+p')
// 查询div同级别下面紧挨的p标签

选择器更多方法

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

操作标签

操作CSS属性

$('p').addClass('className')
// 添加指定的CSS类名。

$('p').removeClass('className')
// 移除指定的CSS类名。

$('p').hasClass('className')
// 判断样式存不存在 得到结果 ture  false

$('p').toggleClass('className');
// 切换CSS类名,如果有就移除,如果没有就添加。


$("p").css("color", "red");
//设置标签p的css样式(属性名,属性值)

返回网页指定位置

$(window).scrollTop()
//获取网页滚动条位置

$(window).scrollTop(1)
//一键返回页面顶部 

$(window).scrollTop(9999)
//一键到页面底部

标签内文本操作

$('p').text()
// 获取标签内的文本内容

$('p').text('可以设置新文本')
// 获取标签内的文本内容

$('input').val()
// 获取标签内的属性值

$('input')[0].files
// 获取文件内容



<input type="checkbox" value="basketball" name="hobby">篮球
<input type="checkbox" value="football" name="hobby">足球
<select multiple id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])
//获取标签内 多个值


1.创作一个标签

$('<a>')
//('直接填写标签名')

$('a').text('给A标签添加文字')

$('div').append('<a>')
// 把B追加到A

标签内属性操作

$('<a>').attr('name')
//获取标签的属性值

$('span').attr('name','moon')
//给标签添加属性和设定值

$('<a>').attr('href','https://www.baidu.com/')
//给标签添加属性值

$('a').removeAttr('href')
//给标签移除这个属性
.attr方法 无法获取动态变化的数据

如果需要获取动态的数据

我们在处理checkbox和radio的时候尽量使用特定的prop()

<input type="checkbox" id="D1" value="1">
$("#D1").prop("checked")  
// false  判断是否被选中


prop不支持获取标签的自定义属性。

创作标签/添加标签

$('<a>')
//('直接填写标签名')

$('<a>').attr('href','https://www.baidu.com/')
//给标签添加属性值

$('a').removeAttr('href')
//给标签移除这个属性

$('a').text('给A标签添加文字')

$('div').append('<a>')
// 把a追加到div标签内

$(A).prepend(B)// 把B前置到A

删除标签

$(A).remove()
//删除标签 并 删除标签内的所有内容

$(A).empty()
//删除表期内所有内容 保留标签



绑定事件

直接使用jQuery对象点事件

语法:

$('#di').click(function(){...})
//给标签id di 绑定单击事件

hover(function(){...})
悬浮事件
blur(function(){...})
失去焦点
focus(function(){...})
聚焦
change(function(){...})
文本域变化
keyup(function(){...})


方式一;

$('#di').click(function(){...})
//也支持直接绑定多个对象 
//$('div').click(function(){...})

方式二:

$('#di').on('事件名称'(function(){...})


input输入框时时监听事件
$("#d1").on("input", function () {
  })
//input输入框时时监听事件
                               
$("#d1").click(function(){
  $("#d1").append($(this).clone(true))
})
                          

取消后续事件

1.取消后续事件
	事件函数的最后return false即可
2.阻止事件冒泡
	事件函数的最后return false即可
3.等待页面加载完毕再执行代码
	$(function(){})				   缩略写法
 	$(document).ready(function(){})  完整写法
4.事件委托
	主要针对动态创建的标签也可以使用绑定的事件
 	$('body').on('click','button',function(){})
 	将body内所有的单击事件委托给button标签执行
posted @   Python-moon  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示