jquery笔记一:下载安装、语法、选择器、遍历选择元素的方法、jQuery动画

目前 jQuery 兼容于所有主流浏览器, 包括 IE 6!开发时常用 jquery.js,上线用 jquery.min.js
jq插件

目前jQuery有三个大版本:
(1)1.x.x: 兼容ie6,7,8,使用最为广泛,官网只做BUG维护,功能不再新增。因此一般项目来说,使用1.X版本就可以了,最终版本:1.12.4 (2016年5月20日)
(2)2.x.x: 不兼容ie6,7,8,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
(3) 3.x.x: 不兼容ie6,7,8,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本。最新版本:3.2.1(2017年3月20日)

目录小标题
一、jQuery 下载安装1.1 网页中添加 jQuery;1.2 查看版本
二、选择器2.1 基本选择器;2.2 层次选择器;2.3 过滤选择器(重点); 2.4 内容过滤选择器;2.5 可见性过滤选择器;2.6 属性过滤选择器;2.7 状态过滤选择器;2.8 表单选择器;
三、遍历选择元素的方法3.1 遍历祖先;3.2 遍历子孙后代;3.3 遍历兄弟同胞;3.4 过滤;3.5 其他方法:clone();
四、jQuery动画4.1 隐藏、显示:hide()show()togger()
4.2 渐隐渐显:fadeOut()fadeIn()fadeToggle()fadeTo()
4.3 上拉下拉:slideUp()slideDown()lideToggle()
4.4 动画:animate();

一、jQuery 下载安装

jquery中文网,教程也可以看 菜鸟教程。

1.1 网页中添加 jQuery:

  1. 从 jquery.com 下载 jQuery 库,然后保存到本地,在本地引用;
  2. 从 CDN 中载入 jQuery,如从 Google 中加载 jQuery<script src="jquery-1.10.2.min.js"></script>
    (1)jquery 官网上的所有版本;
    (2)国内常用静态资源库:Staticfile CDN、百度、又拍云、新浪、谷歌和微软的服务器都存有 jQuery ,我们也可以在Staticfile CDN、又拍云、新浪、谷歌或微软引用 jQuery,具体地址可以查看 菜鸟教程。
    在这里插入图片描述
    我们取他们前面的地址就可以看到里面各自存的库,以新浪为例(百度不能用了):
    在这里插入图片描述

1.2 查看版本:

可以在浏览器的 Console 窗口中使用 $.fn.jquery 命令查看当前 jQuery 使用的版本。
在这里插入图片描述



二、选择器

2.1 基本选择器

示例说明
$("#id")ID选择器
$("div")元素选择器
$(".classname")类选择器
$(".classname,.classname1,#id1")组合选择器

2.2 层次选择器

示例说明
$("#id>.classname ")子元素选择器,选择亲儿子
$("#id .classname ")后代元素选择器
$("#id + .classname ")紧邻下一个元素选择器
$("#id ~ .classname ")兄弟元素选择器

2.3 过滤选择器(重点)

示例说明
$("li:first")第一个li
$("li:last")最后一个li
$("li:even")挑选下标为偶数的li
$("li:odd")挑选下标为奇数的li
$("li:eq(4)")下标等于 4 的li(第五个 li 元素)
$("li:gt(2)")下标大于 2 的li
$("li:lt(2)")下标小于 2 的li
$("li:not(#runoob)")挑选除 id=“runoob” 以外的所有li

2.4 内容过滤选择器

示例说明
$("div:contains('Runob')")包含 Runob文本的元素,可用来做搜索关键字高亮显示。
$("td:empty")不包含子元素或者文本的空元素
$("div:has(selector)")含有选择器所匹配的元素
$("td:parent")含有子元素或者文本的元素

2.5 可见性过滤选择器

示例说明
$("li:hidden")匹配所有不可见元素,或type为hidden的元素
$("li:visible")匹配所有可见元素

2.6 属性过滤选择器

示例说明
$("div[id]")所有含有 id 属性的 div 元素
$("div[id='123']")id属性值为123的div 元素
$("div[id!='123']")id属性值不等于123的div 元素
$("div[id^='qq']")id属性值以qq开头的div 元素
$("div[id$='zz']")id属性值以zz结尾的div 元素
$("div[id*='bb']")id属性值包含bb的div 元素
$("input[id][name$='man']")多属性选过滤,同时满足两个属性的条件的元素

2.7 状态过滤选择器

示例说明
$("input:enabled")匹配可用的 input
$("input:disabled")匹配不可用的 input
$("input:checked")匹配选中的 input
$("option:selected")匹配选中的 option

2.8 表单选择器

示例说明
$(":input")匹配所有 input, textarea, select 和 button 元素
$(":text")所有的单行文本框,(":text")等价于(":text") 等价于(":text")("[type=text]"),推荐使用$(“input:text”)效率更高,下同
$(":password")所有密码框
$(":radio")所有单选按钮
$(":checkbox")所有复选框
$(":submit")所有提交按钮
$(":reset")所有重置按钮
$(":button")所有button按钮
$(":file")所有文件域


三、遍历选择元素的方法

jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。

<div id="box"><p class="title">标题tttt</p><span>文字</span><span></span><div id="content"><h2>h2标签</h2><p class="msg">信息xxx</p><p>段落</p></div>
</div>

3.1 祖先

方法说明举例
parent()返回被选元素的直接父元素$("#content").parent();,返回 元素#box
parents()返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)$("#content").parents();,返回 元素#box元素body元素html
parentsUntil("元素")返回介于两个给定元素之间的所有祖先元素$(".title").parentsUntil(".msg");,返回 元素#box元素body元素html

3.2 子孙后代

方法说明举例
children()返回被选元素的所有亲儿子,效果等价 >$("#box").children();,返回 p.tiltespanspandiv#content
find("元素")返回被选元素的所有后代元素,一路向下直到最后一个后代。等价于 后代选择符$("#box").find("p");,在 #box 中查找所有的 p 元素

3.3 兄弟同胞

方法说明举例
siblings()返回被选元素的所有兄弟元素,等价 ~$(".msg").siblings();,返回 h2p
next()返回被选元素的下一个兄弟元素,等价 +$(".msg").next();,返回相邻的span
nextAll()返回被选元素的所有兄弟元素。$(".msg").nextAll();,返回 spanspandiv#content
nextUntil("元素")返回被选元素的所有跟随的兄弟元素。$("h2").nextUntil(".content p.msg"),返回的是与 h2 同级的所有兄弟元素(不包括h2)
prev()prevAll()prevUntil("元素")类似上面的方法,只不过是前面的兄弟元素

3.4 过滤

1. 三个最基本的过滤方法是:first()last()eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。
2. 其他过滤方法,比如 filter()not() 允许您选取匹配或不匹配某项指定标准的元素。

方法说明举例
first()返回被选元素的首个元素。$("div p").first();,返回 p.tilte。这里的 $("div p") 可以选择到两个,一是 #box 中的 p二是 #content 中的 p$("div p").first();选择到的是第一种
last()返回被选元素的最后一个元素。$("div p").last();,返回 p.tilte。与上面相反,选择的是最后一个p,即#content 中的 p
ep(索引)返回被选元素中带有指定索引号的元素,从 0 开始。$("#content p").eq(0);返回 p.msg。#content 中索引为0的 p。
filter("元素")允许您规定一个标准。等价于指定元素$("p").filter(".msg");效果等同于$("p.msg")
not("元素")返回不匹配标准的所有元素。等价于:not()$("p").not(".msg");,返回p.titlep,效果等同于p:not(.msg)

3.5 其他方法:clone()



四、jQuery 动画

动画分为三部分:内置动画、自定义动画(animate)、动画的配置;
内置动画包含:

  • 隐藏、显示:hide()show()togger()
  • 渐隐渐显:fadeOut()fadeIn()fadeToggle()fadeTo()
  • 上拉下拉:slideUp()slideDown()lideToggle()

4.1 隐藏、显示:hide()show()togger()

隐藏hide(speed)、显示show(speed)、隐藏或显示togger(speed) - 类似toggleClass()

  • 参数speed的值:"slow"(600毫秒)、"fast"(200ms) 或 毫秒。默认(不写字符,即参数为"")400ms,不写为直接显示或隐藏(下同)。

这三个方法相当于给被选元素添加内置的样式:display:none;display:block;

<div id="box">boxoxbox</div>
<script>$("#box").on("click", function(event){event.stopPropagation();  //阻止冒泡$("#box").hide();})$(document).on("click", function(){$("#box").show();})
</script>

在这里插入图片描述

4.2 渐隐渐显:fadeOut()fadeIn()fadeToggle()fadeTo()

渐隐fadeOut(speed)、渐显fadeIn(speed)、渐隐渐显fadeToggle(speed)、渐变到fadeTo(speed, opacity)

  • 参数speed:"slow""fast" 或 毫秒。
  • 参数opacity:不透明度(值介于 0 与 1 之间)。
<button id="btn1">渐隐</button>
<button id="btn2">渐显</button>
<button id="btn3">渐隐或渐显</button>
<button id="btn4">渐变到</button>
<div style="width: 100px;height: 100px;background: red;"></div>
<script>$("#btn1").click(function(){$("div").fadeOut();})$("#btn2").click(function(){$("div").fadeIn();})$("#btn3").click(function(){$("div").fadeToggle();})$("#btn4").click(function(){$("div").fadeTo("slow", .2);})
</script>

在这里插入图片描述

4.3 上拉下拉:slideUp()slideDown()lideToggle()

上拉slideUp(speed)、下拉slideDown(speed)、上拉或下拉lideToggle(speed)

  • 参数speed:"slow""fast" 或 毫秒。

4.4 动画:animate()

animate() 中可以接收3个参数,分别是:对象(要变化的样式和值),回调函数(回调函数中可以是再次对动画进行改变,也可以改变样式等)、动画的持续时间(单位:ms)。
1. 使用方法:
目标元素(即要发生变化的元素).animate({要发生变化的属性: 属性值(即改变到多少值)});

<style>div{position:absolute;width:100px;height:100px;background:red;}
</style>
<input type="button" id="btn1" value="开始"/>
<div></div><script>
//将100*100的div的宽高分别增加到 200px、100px,且定位位置同时也发生变化。
$("#btn1"![请添加图片描述](https://img-blog.csdnimg.cn/3f3701087edc495391ca99512e98839e.gif)
).on("click", function(){$("div").animate({width: 200,height: 100,top: 30,left:30});
})
</script>

animate 中的属性值可以做简单的运算:

//在原来的基础上宽度+100,这里要注意是字符形式
$("div").animate({width: "+=100",height: 100,top: 30,left:30
});

2. 链式运动
(1)链式运动是同步的,最原始的写法:

//宽先增加到200px,位置变化到 top:30,left:30,然后高再变化到200px
$("div").animate({width: "+=100",height: 100,top: 30,left:30
});
$("div").animate({height: 200
})

(2)可以改写成:

//宽先增加到200px,位置变化到 top:30,left:30,然后高再变化到200px
$("div").animate({width: "+=100",height: 100,top: 30,left:30
},function(){$("div").animate({height: 200});
});

请添加图片描述
(3)上面这种方式有简单写法:

//宽先增加到200px,位置变化到 top:30,left:30,然后高再变化到200px
$("div").animate({width: "+=100",height: 100,top: 30,left:30
}).animate({height: 200})

上面3中写法的选择:

  • 当链式运动操作的对象(元素)不是同一个时,选择(1)、(2);
  • 每次动画操作的都是同一个元素时,采用连缀的写法:(3);
  • 当 css 方法和 animate 方法一起使用时,连缀写法会让 css 和 animate 同时生效。如果想要在animate 中的样式执行完之后,再去执行 css,需要变成写法(2)【css样式需要在哪个动画后改变,就在这个动画后写回调函数】。
    //连缀写法:会在一开始颜色就变成 yellow
    $("div").animate({width: "+=100",height: 100,top: 30,left:30
    }).animate({height:200}).css({ background: "yellow" });//回调函数式写法:
    $("div").animate({width: "+=100",height: 100,top: 30,left:30
    }).animate({height:200},function(){$("div").css({ background: "yellow" });
    })
    
    函数式写法的链式运动:函数式写法的链式运动

3. 动画的配置
(1)动画延迟生效:.delay(延迟时间ms) 写在动画开始之前。

<style>div{position:absolute;width:100px;height:100px;background:red;top:40px;left: 0;}
</style><input type="button" id="btn1" value="开始"/>
<div></div><script>$("#btn1").click(function(){$("div").animate({left:300 },1000).delay(1000).animate({ top:200 } ,1000).animate({ left:0 } ,1000).animate({ top:40 } ,1000)})</script>

请添加图片描述

(2)动画停止:.stop(动画队列[布尔值], 当前动画[布尔值]);默认为(false,false)
使用方式与 .delay() 相同
参数一:true 表示清除动画队列(即清除整个动画效果),false表示不清除动画队列。
参数二:true 表示直接运行到当前动画的终点,false 表示停止当前动画。

<style>div{position:absolute;width:100px;height:100px;background:red;top:40px;left: 0;}
</style>
<input type="button" id="btn1" value="开始"/>
<input type="button" id="btn2" value="停止"/>
<div></div>
<script>$("#btn1").click(function(){$("div").animate({ left:300 },1000).animate({ top:200 } ,1000).animate({ left:0 } ,1000).animate({ top:40 } ,1000)});$("#btn2").click(function(){$("div").stop(true, false);})
</script>

请添加图片描述
案例放到Github上了:https://github.com/hexiling/jq-animate-stop
在这里插入图片描述
在这里插入图片描述
上面两张图片中,第一个是没有关闭动画的效果,第二个是关闭了动画,.stop() 中的第一个参数传 true 或者 false 都可以。主要:.stop(false,false)

(3)动画递归–动画自动循环播放

<style>div{width:100px;height:100px;background:red;}</style><script>$("#btn1").click(function(){$("div").toggle(1000, function () {$("div").toggle(1000, arguments.callee);})});
</script>

请添加图片描述

(4)动画的全局方法
写在全局位置。

  • $.fx.interval; 默认13毫秒动画帧数设置,帧数越小,动画越流畅,但是可能会影响性能。使用:$.fx.interval = 2000;
  • $.fx.off=true; 关闭动画,设置为 true 时直接到动画的结束位置。
$.fx.interval = 2000;$("#btn1").click(function(){$("div").animate({ left:300 },1000).animate({ top:200 } ,1000).animate({ left:0 } ,1000).animate({ top:40 } ,1000)});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery简介 each遍历 prop attr

一、JQ简介 jQuery是一个快速、简洁的JavaScript框架&#xff0c;它封装了JavaScript常用的功能代码&#xff0c;提供一种简便的JavaScript设计模式&#xff0c;优化HTML文档操作、事件处理、动画设计和Ajax交互。 装载的先后次序&#xff1a;  jQuery封装库在上&#xff0…

如何让Visitor变得可爱1

本文转自&#xff1a;http://www.cnblogs.com/idior/archive/2005/01/19/94280.html 在wayfarer的文章中提到了如何利用visitor模式实现添加新的功能。如他所说&#xff0c;在实际过程中显的不是那么可爱。不过他为我们提供了一个可行的解决方案&#xff0c;本文将在此基础上使…

EJB 3.x:生命周期和并发模型(第1部分)

Java EE组件生命周期和与并发相关的详细信息对于经验丰富的专业人员而言可能不是新知识&#xff0c;但是对于初学者而言&#xff0c;这可能需要花费一些时间。 就EJB而言&#xff0c;了解其生命周期 &#xff08;以及相关的并发场景&#xff09;对于确保使用EJB的正确用法和解…

单独使用 laydate 日期时间组件

layui 日期和时间组件官方文档 需要注意几点&#xff1a; 下载压缩包后&#xff0c;复制整个 laydate 文件夹放到项目中&#xff0c;里面的文件不要改动位置&#xff0c;否则会报错&#xff1b;在移动端使用时&#xff0c;要给 input 添加 readonly 属性&#xff0c;否则点击…

从零开始学习SVG

1 什么是SVG&#xff1f; MDN中的定义是&#xff1a;SVG即可缩放矢量图形&#xff08;Scalable Vector Graphics&#xff0c;SVG)&#xff0c;是一种用来描述二维矢量图形的 XML 标记语言。 简单地说&#xff0c;SVG 面向图形&#xff0c;HTML 面向文本。SVG 与 Flash 类似&am…

layui 关于layDate设置时间限制问题

前面是尝试结果&#xff0c;有兴趣的可以康康&#xff0c;赶时间的可以直接翻到底下 ----->直达车 因为只有一个页面&#xff0c;没什么标准&#xff0c;所以自己就使用了layui的时间控件&#xff0c;并且作为独立组件。 第一次尝试 - 使用 min 一开始只想让结束时间有个…

QQ聊天记录快速迁移

QQ聊天记录快速迁移 在工作中大家经常会用到QQ来沟通&#xff0c;但是很多时候在其它设备上登录QQ就无法查看到之前的聊天记录和图片&#xff0c;这是因为电脑上的QQ聊天记录一般都是保存在电脑本地硬盘里&#xff0c;所以我们在换设备登录QQ后&#xff0c;是无法查看到之前电脑…

Hawtio和Jolokia的休眠统计

企业Java的很大一部分处理数据。 在企业设置中使用数据的所有不同方式中&#xff0c;仍然存在使用任何种类的O / R映射的行之有效且广泛教授的方法。 JPA标准使每个人都可以轻松使用它&#xff0c;并且它也应该是可移植的。 但是&#xff0c;我们不要谈论迁移细节。 O / R映射的…

laydate 时间控件去掉秒以及解决在移动端不能滑动的问题

一、时间控件去掉秒&#xff0c;保留时分 二、时间控件在移动端不能滚动 一、时间控件去掉秒&#xff0c;保留时分 方法一&#xff1a;使用 ready 回调函数 ready 控件在打开时触发。打开控件时让秒消失。 <script> laydate.render({elem: #endTime, //指定元素trigg…

Entity Framework Code First属性映射约定 转载https://www.cnblogs.com/libingql/p/3352058.html

Entity Framework Code First属性映射约定 Entity Framework Code First与数据表之间的映射方式有两种实现&#xff1a;Data Annotation和Fluent API。本文中采用创建Product类为例来说明tity Framework Code First属性映射约定的具体方式。 1. 表名及所有者 在默认约定的情况下…

layui 时间控件二次渲染,点击一个自定义按钮清空/重置时间控件

标题小标题一、错误尝试二、时间控件二次渲染的3种方法2.1 直接删除原来绑定时间控件的DOM&#xff0c;再重新渲染&#xff08;推荐&#xff09;&#xff1b;2.2 使用 clone() &#xff0c;并且改变 lay-key&#xff1b;2.3 使用 clone() &#xff0c;并且删除 lay-key&#xf…

2019年春第二次课程设计实验报告

一、试验项目名 贪吃蛇 二、试验功能介绍 通过数组构造小蛇&#xff0c;在通过数组中的变化控制小蛇移动和变长。 三、项目模块结构介绍 构造小蛇 小蛇移动 移动中碰到边框或自己失败 小蛇长大 四、实现界面展示 五、代码托管链接https://gitee.com/t001023/software_class_1_t…

Elasticsearch用例:全文搜索

在本系列有关Elasticsearch用例的最后一篇文章中&#xff0c;我们介绍了Elasticsearch提供的用于存储甚至大量文档的功能 。 在这篇文章中&#xff0c;我们将研究其另一个核心功能&#xff1a;搜索。 我正在利用上一篇文章中的某些信息&#xff0c;因此&#xff0c;如果您还没有…

使用echarts时,鼠标首次移入屏幕会闪动,屏幕会出现滚动条

当我刷新&#xff0c;鼠标经过图表时&#xff0c;页面会出现滚动条 原因&#xff1a; 在echarts图表中出现 tooltip 时&#xff0c;画布的父标签&#xff08;即&#xff1a;echarts.init()的标签&#xff09;的宽高有时会发生变化&#xff0c;导致相对布局的div可能大小发生…

移动端 flexible.js 布局详解

原本想直接引入原文链接&#xff0c;但是又担心作者哪天想不开注销账号&#xff0c;这么好的一篇文章看不到了&#xff0c;还是转载一下吧(/ω&#xff3c;)。 另外推荐一篇好文&#xff1a;移动端rem自适应实操讲解 本文讲的通过 flexible.js 实现了rem自适应&#xff0c;有了…

Gradle善良:获得更多的依赖性见解

在我们的大多数项目中&#xff0c;我们都依赖于其他代码&#xff0c;例如库或其他项目。 Gradle有一个不错的DSL来定义依赖关系。 依赖性在依赖性配置中分组。 这些配置可以自己创建&#xff0c;也可以通过插件添加。 一旦定义了依赖项&#xff0c;我们就可以通过dependencies任…

js css模仿打字效果

1.效果 2.源码 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><style type"text/css">#myDiv{display: inline-block;width:500px;height:300px;background-color:rgba(0,0,0,0.3);colo…

iframe 高度根据子页面来确定

标题描述一、解决方法解决代码二、关于高度问题简单讲一下jquery中的 height()&#xff0c;innerHeight()、outHeight()&#xff0c;js中的offsetHeight、clientHeight、scrollHeight。如何获取没有给出高度的元素的高度&#xff1f;详细介绍offsetHeight,clientHeight,scrollH…

layui 子页面写弹出框覆盖父页面,以及给弹框中的表单赋值

咋说呢&#xff0c;因为对 layui 不太熟悉&#xff0c;这个弹出框搞了好久&#xff0c;看了好多解决方案&#xff0c;大致尝试了一下其中几种&#xff0c;在坑中无法自拔。。。总之终于搞出来了&#xff0c;在这里分享一下我的笔记。 着急的直接 戳这里 看解决代码。 尝试 1、…

html实现文字垂直居中且设置间隔

使用table和table-call布局 将表格作为一个table表&#xff0c;使用table-cell定义每个单元格的布局为table-cell, 抛出display的有效值 单元格中间的间隔使用 border-spacing:10px; border-collapse: separate;定义单元格vertical-align: middle; display: table-cell;代码源码…