快速上手jquery
优点
- 强大的选择器机制
- 优质的隐私迭代
- 链式编程
选择机制
选择器
- 标签名
$('div')
- id
$('#id')
- class
$('.clname')
- 属性
$('div:[name='66']')
- 后代第一个
$('ul>li:first')
- 后代最后一个
$('ul>li:last')
- css结构为类
$('ul>li:nth-child(2)')
- css 结构为类奇数
$(ul>li:nth-child(odd))
- 索引
$('ul>li').eq(2)
- 偶数
$('ul>li:even')
筛选器
| 名称 | 写法 |
|---|---|
| 第一个 | $('ul>li').first() |
| 最后一个 | $('ul>li').last() |
| 下标索引 | $('ul>li').eq(num) |
| 上一个兄弟 | $('ul>li').eq(num).prev() |
| 下一个兄弟 | $('ul>li').eq(num).next() |
| 之前所有 | $('ul>li').eq(num).prevAll() |
| 之后所有 | $('ul>li').eq(num).nextAll() |
| 所有兄弟 | $('ul>li').silnlings() |
| 父级 | $('ul>li').parent() |
| 所有父级 | $('ul>li').parents() |
| 当前索引下标 | $('ul>li').eq(2).index() |
| 查看符合条件的标签 | $('ul>li').find('条件') |
操作
属性操作
- bool类型: prop()
- 其他类型: attr()
| 操作 | prop | attr |
|---|---|---|
| 删除 | dom.removeProp('属性') | dom.removeAttr('属性') |
| 获取 | dom.prop('属性') | dom.attr('属性') |
| 添加 | dom.prop('属性','值') | dom.attr('属性','值') |
class操作
- 新增
dom.addClass('name')
- 删除
dom.removeClass('name')
- 切换(有或没有)
dom.toggleClass('name')
- 是否存在
dom.hasClass('name')
css操作
- 获取 dom.css('属性')
- 设置 dom.css('属性','值')
- 设置 dom.css({属性:值, 属性:值})
标签插入内容操作
- dom.html()
- dom.text()
事件
事件绑定与删除
相关代码
dom.on(类型,函数)
dom.on(类型,数据,函数)
dom.off(类型,函数) -- 删除
dom.on('click', {name:"张三",age:18}, e=>{})
委托
dom.on(类型,委托对象,函数)
dom.on('click', 'span', e=>{})
特殊事件绑定
- dom.click(函数)
- dom.hover(函数,函数)
移入移除效果 - dom.one(函数)
触发一次 - dom.trigger(事件名称)
立即触发一次 - $(window).ready()
- DOM加载完成后
- 等待dom树加载完即可
- 可以执行有多次
循环
dom.each((k,v)=>{})
节点操作
获取元素站位
| 名称 | 写法 |
|---|---|
| 内容宽/高 | dom.width() / dom.height() |
| 内容+padding | dom.innerWidth() / dom.innerHeight() |
| 内容+padding+border | dom.outerWidth() / dom.outerHeight() |
| 内容+padding+margin | dom.outerWidth(true) / dom.outerHeight(true) |
获取元素坐标
- 距离窗口
dom.offset()
dom.offset({left:0px,top:0px}) - 距离父物体
dom.position()
浏览器滚动
$(window).scrollTop()
$(window).scrollLeft()
节点操作
创建
$('内容')
写入
父级最后
fdom.append(dom)
dom.appendTo(fdom)
父级起始
fdom.prepend(dom)
dom.prependTo(fdom)
标签之后
dom.after(ndom)
ndom.insertAfter(dom)
标签之前
dom.before(ndom)
ndom.insertBefore(dom)
节点/标签替换
dom.replaceWith(ndom)
ndom.replaceAll(dom)
删除
dom.empty
dom.remove()
克隆
dom.clone()
- 参数1:默认false 子集事件默认也会克隆
- 参数2:默认true
- 参数1:true 参数2:false 只克隆本身不可隆子元素事件
阻止默认行为
- 冒泡: stoppropagation()
- 捕获: preventDefult()
- 所有: return false
动画
标准动画
- 消失
dom.hide(时间, 方式, 函数)
- 显示
dom.show(时间, 方式, 函数)
- 切换
dom.toggle(时间, 方式, 函数)
// 给切换按钮,添加事件
$('[name="toggle"]').click(function(){
$('div').toggle( 2000 , 'linear' , function(){
console.log('div完全切换了');
} )
})
折叠动画
- 消失
dom.slideUp()
- 显示
dom.slideDown()
- 切换
dom.slideToggle()
渐隐渐现
- 消失
dom.fadeOut()
- 显示
dom.fadeIn()
- 切换
dom.fadeToggle()
自定义动画
dom.animate({属性;值, ...}, 时间, 方式, 函数)
动画结束
- 从当前运动为止
dom.stop()
- 从上个一个运动结束
dom.finish()
扩展
ajax请求
$.ajax({
//请求方式
type : "POST",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "http://127.0.0.1/admin/list/",
//数据,json字符串
data : JSON.stringify(list),
//请求成功
success : function(result) {
console.log(result);
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
深浅拷贝
- 浅拷贝:拷贝复制引用类型的内存地址
- 深拷贝:拷贝复制,引用类型的数据,两个变量之间没有相互联系
$.extend(参数1, 参数2, 参数3)
- 参数1:
- true 深拷贝
- false 浅拷贝
- 参数2: 新变量
- 参数3: 原始变量
- 参数1:
ajax全局钩子函数
- 作用:监听函数执行,当执行到某个状态,执行钩子函数对应的程序
- ajax的基本步骤:
- 声明定义一个ajax对象
- 定义 open()
- 定义 send()
- 接收响应体内容
- 写法
- $(window).ajaxStart()
- 阶段:ajax开始前
- 次数:有多个ajax,也只触发一次
- 注意:如果一个作用域下,有多个人ajax,只会在第一个 ajax 请求之前触发
- $(window).ajaxSend()
- 阶段:ajax发送前
- 次数:有几个send,触发几次
- $(window).ajaxSuccess()
- 阶段:ajax请求成功
- 次数:成功几次,触发几次
- $(window).ajaxError()
- 阶段:ajax失败
- 次数:失败几次,触发几次
- $(window).ajaxComplete()
- 阶段:ajax请求完成
- 次数:完成几次,触发几次
- $(window).ajaxStop()
- 阶段:ajax所有请求完成
- 次数:多次请求结束,只有最后一次会触发
- $(window).ajaxStart()
// 在请求,开始时会触发
// 多个请求,只会触发一次
$(window).ajaxStart(()=>{
console.log('第一个请求就要开始了');
})
// 在发送请求时会触发
// 多个请求,会触发多次
$(window).ajaxSend( function(){
console.log('发送了一个请求');
} )
// 在请求成功时,会触发
// 多个请求成功,会触发多次
$(window).ajaxSuccess(()=>{
console.log('有一个请求成功了')
})
// 在请求失败时,会触发
// 多个请求成功,会触发多次
$(window).ajaxError(()=>{
console.log('有一个失败成功了')
})
// 在请求结束时,会触发
// 多个请求结束,会触发多次
$(window).ajaxComplete(()=>{
console.log('有一个请求结束了')
})
// 在所有请求结束时,会触发
// 只会触发一次
$(window).ajaxStop(()=>{
console.log('所有请求都结束了')
})
多库并存
问题
- 当其他封装的插件或框架 操作方法与jQuery操作方法发生冲突
- 使用的也是 $/jQuery 语法来调用
- 操作语法就会发生冲突,需要调用jquery的调用方法
写法
- $.noconflict() $符号不能用
- $.noconflict(true) $ 和 jQuery都不能用
let abc = $.noconflict(true)
abc(‘div’).css(color,red)
快速上手jquery的更多相关文章
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
(目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...
- knockoutJS 快速上手
翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...
- npm、webpack、vue-cli 快速上手
npm+webpack+vue-cli快速上手 Node.js npm 什么是Node.js 以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...
- 快速上手 Echarts
最近使用到了 百度的 Echarts 数据可视化工具,这里简单介绍如何快速上手. 一.下载 这里选择目前最新版本,4.2.1 地址:https://github.com/apache/incubato ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
随机推荐
- MindSponge分子动力学模拟——增强采样(2024.11)
技术背景 关于增强采样(Enhanced Sampling)算法的具体原理,这里暂不做具体介绍,感兴趣的童鞋可以直接参考下这篇综述文章:Enhanced sampling in molecular d ...
- CF1487-B Cat Cycle
一个规律题目要多做多积累 , 脑子不太灵活 CF1487 Cat Cycle 题目大意: 两只猫A,B, A猫从n -> n-1 -> n-2 ... -> 1 -> 2 .. ...
- UE4纯C++实现游戏快捷栏之创建快捷栏UI
作为一个在游戏界面中显示的快捷栏,我们需要在游戏运行时就显示出快捷栏UI,故我们创建两个Widget. 1.GameHUDWidget:负责游戏中界面UI的整体显示 2.ShortcutWidget: ...
- RAG三件套运行的新选择 - GPUStack
GPUStack 是一个开源的大模型即服务平台,可以高效整合并利用 Nvidia.Apple Metal.华为昇腾和摩尔线程等各种异构的 GPU/NPU 资源,提供本地私有部署大模型解决方案. GPU ...
- 两个新出的 JavaScript 运算符
在 ECMAScript 2021(ES12)中,JavaScript 引入了新的逻辑赋值操作符 &&= 和 ??=.这些操作符将逻辑运算符与赋值运算符相结合,提供了更加简洁.直观的赋 ...
- HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信
自研原生鸿蒙NEXT5.0 API12 ArkTS仿微信app聊天模板HarmonyOSChat. harmony-wechat原创重磅实战纯血鸿蒙OS ArkUI+ArkTs仿微信App聊天实例.包 ...
- AI 实战篇:Spring-AI再更新!细细讲下Advisors
在2024年10月8日,Spring AI再次进行了更新,尽管当前版本仍为非稳定版本(1.0.0-M3),但博主将持续关注这些动态,并从流行的智能体视角深入解析其技术底层.目前,Spring AI仍处 ...
- VAE变分自编码器Keras实现
变分自编码器(variational autoencoder, VAE)是一种生成模型,训练模型分为编码器和解码器两部分. 编码器将输入样本映射为某个低维分布,这个低维分布通常是不同维度之间相互独立的 ...
- element-ui季度选择组件
1.基于elementui开发的季度选择组件 2.调用 <el-quarter-picker v-model="start_time" :size="size&qu ...
- Windows 触控笔
平板以及二合一平板均是触控屏,Laptop现在也有很多屏幕带触控 触控屏,都会配置触控笔配件,目前市场上一般是电容屏+电容笔的技术方案. 触控笔分为主动笔和被动笔,主动笔占绝大部分.主动笔是通过内部电 ...