当前位置: 首页 > news >正文

jQuery快速入门

jQuery简介

1. jQuery介绍
        1. 为什么用jQuery?
            简单、开发效率高、不用浏览器的差异化
        2. jQuery是什么?
            前端的一个类库,插件。
        3. 使用
            1. 下载jQuery
                http://jquery.com/download/
            2. 导入
                1. script导入本地的文件
                2. 使用CDN
            3. 按照jQuery的语法使用就可以啦
                注意:先导入再使用
                
    2. jQuery内容
        1. 查找标签(非常非常多)
            1. 基本选择器(同CSS选择器)
            2. 层级选择器(同CSS选择器)
            3. 属性选择器
            4. 表单筛选器
            
            5. 筛选器方法
                1. 往下找
                    1. .next()
                    2. .nextAll()
                    3. .nextUntil()
                2. 往上找
                    1. .prev()
                    2. .prevAll()
                    3. .prevUntil()
                3. 找父标签parent()
                    1. .parnet()
                    2. .parents()
                    3. .parentsUntil()
                4. find()
                5. filter()
            
        2. 操作标签
            1. 操作标签的样式
                1. 操作Class
                2. 直接操作style
                
                
    
        3. 事件
        4. jQuery内置简单的动画
简介

 

jQuery介绍

jQuery是一个非常流行的快速、小巧、功能强大的开源JavaScript库。就像官方所宣称的那样——"Write less,do more",它使得我们常用的HTML文档遍历、DOM操作、事件处理、动画效果、Ajax、工具方法等功能代码的实现变得非常简单。更重要的是,它还为我们做了跨浏览器的兼容。绝大多数时候,妈妈再也不用担心我的JS兼容问题了(由于浏览器bug等因素,jQuery也无法100%地实现跨浏览器兼容,官方对这些少数API一般也作了特殊说明,而且这种情况极少遇到,因此可以忽略不计)。

一般而言,需要编写几十行甚至更多的原生JS代码才能实现的功能;使用jQuery,只需要简单的几行甚至一行代码就可以搞定。此外,jQuery还具有灵活的插件扩展机制,这允许第三方人员开发基于jQuery的插件,甚至你也可以快速地编写一个自己的插件。这极大地提高了前端开发人员的开发效率。因此,谷歌、微软、IBM、Facebook等全世界前10000名的网站中有65%以上都使用了jQuery,其它数以百万计的网站也都在使用jQuery。

jQuery的优势

  • jQuery 是一个 JavaScript 库。
  • jQuery 极大地简化了 JavaScript 编程。
  • jQuery 很容易学习。
  • 一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
  • 丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
  • 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
  • 事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
  • Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
  • 跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
  • 插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。

jQuery内容:

下载jQuery : 猛戳此链接

中文文档:jQuery AP中文文档

jQuery的版本

  • 1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
  • 2.x:不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
  • 3.x:不兼容IE678,只支持最新的浏览器。需要注意的是很多老的jQuery插件不支持3.x版。目前该版本是官方主要更新维护的版本。

维护IE678是一件让人头疼的事情,一般我们都会额外加载一个CSS和JS单独处理。值得庆幸的是使用这些浏览器的人也逐步减少,PC端用户已经逐步被移动端用户所取代,如果没有特殊要求的话,一般都会选择放弃对678的支持。

 

jQuery对象

jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如 $(“#i1”).html()。

$("#i1").html()的意思是:获取id值为 i1的元素的html代码。其中 html()是jQuery里的方法。

相当于: document.getElementById("i1").innerHTML;

虽然 jQuery对象是包装 DOM对象后产生的,但是 jQuery对象无法使用 DOM对象的任何方法,同理 DOM对象也没不能使用 jQuery里的方法。

一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$:

var $variable = jQuery对像
var variable = DOM对象
$variable[0]//jQuery对象转成DOM对象

 

拿上面那个例子举例,jQuery对象和DOM对象的使用:

$("#i1").html();//jQuery对象可以使用jQuery的方法
$("#i1")[0].innerHTML;// DOM对象使用DOM的方法

 

 

jQuery使用

jQuery基础语法

  • $(selector).action()
  • $是jquery专用的特殊符号,可以说所有jquery函数的调用都是从$开始的
  • $()在jquery里面表示一个选择器,括号里面填写一定的表达式就可以选中你想要的元素,jquery的选择器除了能很好地遵循css的表达式外,还额外提供了一些更个性化的选择方式,比如$("div li:nth-child(2)")选中的是div中的第2个li元素。
  • 关于选择器的更多用法可以百度一下jquery的api
  • $(document)是一个选择器,选中的是整个html所有元素的集合。
  • $(function(){..})等于document.ready事件,即在页面所有元素准备完毕之后,载入页面之前执行本方法

 

查找标签

基本选择器

$("#id")

 

id选择器

$("tagName")

 

标签选择器

$(".className")

 

class选择器

$(".className")

 

配合使用

$("div.c1")  // 找到有c1 class类的div标签

 

所有元素选择器

$("*")

 

组合选择器

$("#id, .className, tagName")

 层级选择器

x和y可以为任意选择器

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

 

 

基本筛选器

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

 

例子

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

 

自定义模态框

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="x-ua-compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>自定义模态框</title>
  <style>
    .cover {
      position: fixed;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      background-color: darkgrey;
      z-index: 999;
    }
    .modal {
      width: 600px;
      height: 400px;
      background-color: white;
      position: fixed;
      left: 50%;
      top: 50%;
      margin-left: -300px;
      margin-top: -200px;
      z-index: 1000;
    }
    .hide {
      display: none;
    }
  </style>
</head>
<body>
<input type="button" value="弹" id="i0">

<div class="cover hide"></div>
<div class="modal hide">
  <label for="i1">姓名</label>
  <input id="i1" type="text">
   <label for="i2">爱好</label>
  <input id="i2" type="text">
  <input type="button" id="i3" value="关闭">
</div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
  var tButton = $("#i0")[0];
  tButton.onclick=function () {
    var coverEle = $(".cover")[0];
    var modalEle = $(".modal")[0];

    $(coverEle).removeClass("hide");
    $(modalEle).removeClass("hide");
  };

  var cButton = $("#i3")[0];
  cButton.onclick=function () {
    var coverEle = $(".cover")[0];
    var modalEle = $(".modal")[0];

    $(coverEle).addClass("hide");
    $(modalEle).addClass("hide");
  }
</script>
</body>
</html>

jQuery版自定义模态框
自定义模态框

 

属性选择器

[attribute]
[attribute=value]// 属性等于
[attribute!=value]// 属性不等于

 

例子:

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

 

表单选择器

:text
:password
:file
:radio
:checkbox

:submit
:reset
:button

例子:

$(":checkbox")  // 找到所有的checkbox

 

表单对象属性

:enabled
:disabled
:checked
:selected

例子:

找到可用的input标签

<form>
  <input name="email" disabled="disabled" />
  <input name="id" />
</form>

$("input:enabled")  // 找到可用的input标签

 

 找到被选中的option:

<select id="s1">
  <option value="beijing">北京市</option>
  <option value="shanghai">上海市</option>
  <option selected value="guangzhou">广州市</option>
  <option value="shenzhen">深圳市</option>
</select>

$(":selected")  // 找到所有被选中的option

 

转载于:https://www.cnblogs.com/qq752059037/p/9807488.html

相关文章:

  • 线下比特币现金交易的区块链创企CoinText.io完成60万美元种子轮融资
  • SCOI2008着色方案(记忆化搜索)
  • 高性能iOS应用开发(二):应用的生命周期
  • Blockathon(2018)上海竞赛项目成果今天揭晓
  • 版本
  • idea的安装和学生申请免费使用
  • Python自动化开发学习-爬虫2
  • hadoop最新发行稳定版:DKHadoop版本选择详解
  • 多路复用实现单服百万级别RPS吞吐
  • 1024,码出未来!
  • 实验5
  • Sql Server内置函数实现MD5加密
  • [Google Guava] 1.1-使用和避免null
  • 资源下载汇总
  • DevExpress第三方控件使用实例之ASPxPopupControl弹出子窗体
  • JavaScript函数式编程(一)
  • Java程序员幽默爆笑锦集
  • Laravel 菜鸟晋级之路
  • Laravel5.4 Queues队列学习
  • leetcode98. Validate Binary Search Tree
  • MySQL-事务管理(基础)
  • opencv python Meanshift 和 Camshift
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • rc-form之最单纯情况
  • Redis字符串类型内部编码剖析
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue2.0 实现互斥
  • 阿里云Kubernetes容器服务上体验Knative
  • 从0实现一个tiny react(三)生命周期
  • 关于 Cirru Editor 存储格式
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 如何胜任知名企业的商业数据分析师?
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 在Mac OS X上安装 Ruby运行环境
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (2)nginx 安装、启停
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C#)一个最简单的链表类
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (二十四)Flask之flask-session组件
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (篇九)MySQL常用内置函数
  • (四)汇编语言——简单程序
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)memcache、redis缓存