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

jQuery成功之路——jQuery介绍和jQuery选择器概述

一、jQuery介绍

1.1 jQuery概述

jQuery的概述

jQuery是一个快速、简洁的JavaScript框架。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。JQuery封装了JavaScript常用的功能代码,提供了一套易于使用的API,可以跨多种浏览器工作,使HTML文档的遍历和操作、事件处理、动画设计和Ajax交互等操作变得更加简单。

jQuery的作用

  • 访问和操作DOM元素
  • 控制页面样式
  • 对页面事件进行处理
  • 扩展新的jQuery插件
  • 与Ajax技术完美结合

jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发效率

其实,jQuery和JavaScript的之间关系,可以理解为“成语”和“白话文”之间的关系。成语是对白话文的高度压缩,而jQuery也是对JavaScript的高度压缩库

jQuery的优势

  • 体积小,压缩后只有100KB左右
  • 强大的选择器
  • 出色的DOM封装
  • 可靠的事件处理机制
  • 出色的浏览器兼容性

1.2 jQuery框架的下载与引入

jQuery的官方下载

  • jQuery的官方下载地址:http://www.jquery.com

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,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本

  • 开发版本与生产版本,命名为jQuery-x.x.x.js为开发版本,命名为jQuery-x.x.x.min.js为生产版本,开发版本源码格式良好,有代码缩进和代码注释,方便开发人员查看源码,但体积稍大。而生产版本没有代码缩进和注释,且去掉了换行和空行,不方便发人员查看源码,但体积很小。

jQuery的引入

在需要使用jQuery的html中使用js的引入方式进行引入,如下:

<script type="text/javascript" src="jquery-x.x.x.js></script>

jQuery引入成功的测试

关键代码解释

$(function(){ 代码 })
  • 是指 $(document).ready(function(){}) 的简写

  • 用来在DOM加载完成之后执行一系列预先定义好的函数。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><!-- 引入jQuery --><script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script><!-- 测试jQuery --><script type="text/javascript">$(function(){alert("jQuery引入成功....");});</script></head><body></body>
</html>

1.3 jQuery对象与js对象之间的转换

jQuery本质上虽然也是js,但如果使用jQuery的属性和方法那么必须保证对象是jQuery对象,而不是js方式获得的DOM对象,二者的API方法不能混合使用,若想使用对方的API,需要进行对象的转换。

使用js方式获取的对象是js的DOM对象,使用jQuery方式获取的对象是jQuery对象。两者的转换关系如下:

js的DOM对象转换成jQuery对象

  • 语法:$(js的DOM对象)

jQuery对象转换成js对象

  • 语法:jquery对象[索引] 或 jquery对象.get(索引)

代码演示:

  1. 演示使用js的DOM对象方式、jquery对象方式获取div中的文本数据

  2. 演示将js的DOM对象 转换成 jquery对象,再使用转换后的jquery对象方式获取div中的数据

  3. 演示将jquery对象 转换成 js的DOM对象, 再使用转换后js的DOM对象方式获取div中的数据

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><!-- 引入jQuery --><script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script><!-- 测试jQuery --><script type="text/javascript">$(function(){           //1.演示使用js的DOM对象方式获取div中的文本数据var divEle = document.getElementById("myDiv");//js的DOM对象alert(divEle.innerHTML);//js对象的innerHTML属性//1.演示使用jquery对象方式获取div中的文本数据var $divEle = $("#myDiv");//jQuery对象alert($divEle.html());//jQuery对象的html方法//2.演示将js的DOM对象 转换成 jquery对象,再使用转换后的jquery对象方式获取div中的数据alert($(divEle).html());//转换后正常执行//3.演示将jquery对象 转换成 js的DOM对象, 再使用转换后js的DOM对象方式获取div中的数据alert($divEle[0].innerHTML);});</script></head><body><div id="myDiv">通过不同方式获得文本内容</div></body>
</html>
​

小结:

js的DOM对象转换成jQuery对象

  • 语法:$(js的DOM对象)

    var jsDomEle = document.getElementById("myDiv"); //js的DOM对象
    var $jQueryEle = $(jsDomEle); //js的DOM对象 转换成 jquery对象

jQuery对象转换成js对象,

  • 语法:jquery对象[索引] 或 jquery对象.get(索引)

    var $jQueryEle = $("#myDiv"); //jQuery对象
    var jsDomEle = $jQueryEle[0]; //jquery对象 转换成 js的DOM对象

提示:JQuery对象变量名前面的$符号,主要作用是便于我们区分该变量是 JsDOM对象 与 jQuery对象,并无特殊含义。写$符号代表jQuery对象 是 行业书写规范,不加$,代码也没有错误。

二、jQuery选择器

2.1 基本选择器

  • 语法

选择器名称语法解释
标签选择器(元素选择器)$("标签名称")获得所有匹配标签名称的于元素
id选择器$("#id的属性值")获得与指定id属性值匹配的元素
类选择器$(".class的属性值")获得与指定的class属性值匹配的元素

需求

  • 改变 id 为 one 的元素的背景色为红色

  • 改变元素名为 <div> 的所有元素的背景色为红色

  • 改变 class 为 mini 的所有元素的背景色为红色

  • 改变所有的<span>元素和 id 为 two 的元素的背景色为红色

实现:

<script type="text/javascript">//<input type="button" value="改变 id 为 one 的元素的背景色为 红色"  id="b1"/>$("#b1").click(function(){$("#one").css("backgroundColor","red");});
​//<input type="button" value=" 改变元素名为 <div> 的所有元素的背景色为 红色"  id="b2"/>$("#b2").click(function(){$("div").css("backgroundColor","red");});
​//<input type="button" value=" 改变 class 为 mini 的所有元素的背景色为 红色"  id="b3"/>$("#b3").click(function(){$(".mini").css("backgroundColor","red");});
​//<input type="button" value=" 改变所有的<span>元素和 id 为 two 的元素的背景色为红色"  id="b4"/>$("#b4").click(function(){$("span,#two").css("backgroundColor","red");});
</script>

2.2 层级选择器

语法:

重点:

  • 获得A元素内部的所有的B元素:$("A B ") 后代选择器(包含子孙)

  • 获得A元素下面的所有B子元素:$("A > B") 只有儿子,没有孙子

了解:

  • 获得A元素同级下一个B元素:$("A + B") 下一个兄弟

  • 获得A元素同级所有后面B元素:$("A ~ B") 后边的所有兄弟

  • 获取A元素的同级B元素: $("A").siblings("B") 获取所有的兄弟

需求:

  • 改变<body>内所有<div>的背景色为红色

  • 改变<body>内子<div>的背景色为 红色

实现:

<script type="text/javascript">//<input type="button" value=" 改变 <body> 内所有 <div> 的背景色为红色"  id="b1"/>$("#b1").click(function(){$("body div").css("background-color","red");});
​//<input type="button" value=" 改变 <body> 内 子 <div> 的背景色为 红色"  id="b2"/>$("#b2").click(function(){$("body>div").css("background-color","red");});
</script>

2.3 属性选择器

语法:

重点:

  • 获得有属性名的元素:$("A[属性名]")

  • 获得属性名 等于值元素:$("A[属性名=值]")

  • 复合属性选择器,多个属性同时过滤:$("A[属性名!=值]...[属性名!=值]")

了解:

  • 获得属性名不等于值元素:$("A[属性名!=值]")

  • 获得属性名以值开头元素:$("A[属性名^=值]")

  • 获得属性名以值结尾元素:$("A[属性名$=值]")

  • 获得属性名含有值元素:$("A[属性名*=值]")

需求:

  • 含有属性title 的div元素背景色为红色

  • 属性title值等于test的div元素背景色为红色

  • 选取有属性id的div元素,然后在结果中选取属性title等于“test”的 div 元素背景色为红色

实现:

<script type="text/javascript">//<input type="button" value=" 含有属性title 的div元素背景色为红色"  id="b1"/>$("#b1").click(function(){$("div[title]").css("background-color","red");});//<input type="button" value=" 属性title值等于test的div元素背景色为红色"  id="b2"/>$("#b2").click(function(){$("div[title='test']").css("background-color","red");});//<input type="button" value="选取有属性id的div元素,然后在结果中选取属性title等于“test”的 div 元素背景色为红色"  id="b3"/>$("#b3").click(function(){$("div[id][title='test']").css("background-color","red");});
</script>

2.4 基本过滤选择器

语法:

  • 获得选择的元素中的第一个元素: :first

  • 获得选择的元素中的最后一个元素: :last

  • 不包括指定内容的元素例如: :not(selecter)

  • 偶数,从0开始计数: :even

  • 奇数,从0开始技术: :odd

  • 指定索引(index)元素: :eq(index)

  • 大于指定索引(index)元素: :gt(index)

  • 小于指定索引(index)元素: :lt(index)

  • 获得标题,固定写法(<h1> /<h2> ....) :header

了解:

  • 获得正在执行的动画,固定写法 :animated

需求:

  • 改变第一个 div元素的背景色为 红色

  • 改变最后一个 div元素的背景色为 红色

  • 改变class不为 one的所有 div 元素的背景色为 红色

  • 改变索引值为偶数的 div 元素的背景色为 红色

  • 改变索引值为奇数的 div 元素的背景色为 红色

  • 改变索引值为大于3的div元素的背景色为 红色

  • 改变索引值为等于3的div元素的背景色为 红色

  • 改变索引值为小于3的div元素的背景色为 红色

  • 改变所有的标题元素的背景色为 红色

实现:

2.5 表单属性选择器

语法:

  • 获得可用元素: :enabled

  • 获得不可用元素: :disabled

  • 获得单选/复选框选中的元素(单选radio ,多选checkbox): :checked

  • 获得下拉框选中的元素(下列列表select): :selected

需求:

  • 利用 jQuery 对象的 val() 方法改变表单内可用 <input> 元素的值

  • 利用 jQuery 对象的 val() 方法改变表单内不可用 <input> 元素的值

  • 利用 jQuery 对象的 length 属性获取多选框选中的个数

  • 利用 jQuery 对象的 text() 方法获取下拉框选中的内容

实现:

<script type="text/javascript">	
// <input type="button" value=" 利用 jQuery 对象的 val() 方法改变表单内可用 <input type="text"> 元素的值"  id="b1"/>
$("#b1").click(function(){var $input = $("input[type='text']:enabled");$input.val("input标签可用文本输入框的值被改变");
});// <input type="button" value=" 利用 jQuery 对象的 val() 方法改变表单内不可用 <input type="text"> 元素的值"  id="b2"/>
$("#b2").click(function(){var $input = $("input[type='text']:disabled");$input.val("input标签不可用文本输入框的值被改变");
});// <input type="button" value=" 利用 jQuery 对象的 length 属性获取多选框选中的个数"  id="b3"/>
$("#b3").click(function(){var $cb = $("input[type='checkbox']:checked");alert($cb.length);
});// <input type="button" value=" 利用 jQuery 对象的 text() 方法获取下拉框选中的内容"  id="b4"/>
//获取id是b4的按钮对象,增加一个单击事件
$("#b4").click(function(){var $option = $("option:selected");alert($option.text());---------------------------------------var $options = $("option:selected");for(var i=0;i<$options.length;i++){alert($($options[i]).text());
});
</script>

相关文章:

jQuery成功之路——jQuery介绍和jQuery选择器概述

一、jQuery介绍 1.1 jQuery概述 jQuery的概述 jQuery是一个快速、简洁的JavaScript框架。jQuery设计的宗旨是“write Less&#xff0c;Do More”&#xff0c;即倡导写更少的代码&#xff0c;做更多的事情。JQuery封装了JavaScript常用的功能代码&#xff0c;提供了一套易于使…...

极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统

最近客服系统成功经受住了客户现场组织的压力测试&#xff0c;获得了客户的认可。 客户组织多名客服上线后&#xff0c;所有员工同一时间打开访客页面疯狂不停的给在线客服发消息&#xff0c;系统稳定无异常无掉线&#xff0c;客服回复消息正常。消息实时到达无任何延迟。 本文…...

Java--静态字段与静态方法

1、静态字段 如果将一个字段定义为static&#xff0c;每个类只有一个这样的字段。而对于非静态的实例字段&#xff0c;每个对象都有自己的一个副本。 例如&#xff1a; class Employee {private static int nextId 1;private int id;... }其中&#xff0c;每一个Employee对…...

多线程的五种“打开”方式

1 概念 1.1 线程是什么&#xff1f;&#xff1f; 线程&#xff08;Thread&#xff09;是计算机科学中的一个基本概念&#xff0c;它是进程&#xff08;Process&#xff09;中的一个执行单元&#xff0c;负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…...

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)

粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…...

Fiddler Response私人订制

在客户端接口的测试中&#xff0c;我们经常会需要模拟各种返回状态或者特定的返回值&#xff0c;常见的是用Fiddler模拟各种请求返回值场景&#xff0c;如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景&#xff0c;…...

【德哥说库系列】-ASM管理Oracle 19C单实例部署

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…...

手写一个简单爬虫--手刃豆瓣top250排行榜

#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…...

【word密码】如何限制word文件中部分内容?

Word文件中有一部分内容不想他人编辑&#xff0c;我们可以设置限制编辑&#xff0c;可以对一部分内容设置限制编辑&#xff0c;具体方法如下&#xff1a; 我们将需要将可以编辑的地方选中&#xff0c;然后打开限制编辑功能 然后勾选限制编辑设置界面中的【限制编辑】和【每个人…...

spring 自定义类型转换-ConverterRegistry

1背景介绍 一个应用工程里面&#xff0c;一遍会涉及到很多的模型转换&#xff0c;如DTO模型转DO模型&#xff0c;DO模型转DTO, 或者Request转DTO模型&#xff0c;总的来说&#xff0c;维护起来还是相对比较复杂。每涉及一个转换都需要重新写对应类的get或者set方法&#xff0c…...

springboot实现发送短信验证码

目录 一、选择并注册短信服务提供商&#xff1a; 二、添加依赖&#xff1a; 三、配置短信服务信息&#xff1a; 四、编写发送短信验证码的方法&#xff1a; 五、调用发送短信验证码的方法&#xff1a; 一、选择并注册短信服务提供商&#xff1a; 1、选择一个可靠的短信服…...

2024王道408数据结构P144 T18

2024王道408数据结构P144 T18 思考过程 首先还是先看题目的意思&#xff0c;让我们在中序线索二叉树里查找指定结点在后序的前驱结点&#xff0c;这题有一点难至少对我来说…我讲的不清楚理解一下我做的也有点糊涂。在创建结构体时多两个变量ltag和rtag&#xff0c;当ltag0时…...

在windows下安装配置skywalking

1.下载地址 Downloads | Apache SkyWalkinghttp://skywalking.apache.org/downloads/ 2.文件目录说明 将文件解压后&#xff0c;可看到agent和bin目录&#xff1a; Agent&#xff1a;作为探针&#xff0c;安装在服务器端&#xff0c;进行数据采集和上报。 Config&#xff1a…...

关于大模型参数微调的不同方法

Adapter Tuning 适配器模块&#xff08;Adapter Moudle&#xff09;可以生成一个紧凑且可扩展的模型&#xff1b;每个任务只需要添加少量可训练参数&#xff0c;并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变&#xff0c;实现了高度的参数共享 Pa…...

方法的引用第一版(method reference)

1、体验方法引用 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿参数做操作那么考虑一种情况&#xff1a;如果我们在Lanbda中所指定的操作方案&#xff0c;已经有地方存在相同方案&#xff0c;那是否还有必要再重复逻辑呢&#…...

Android DataBinding 基础入门(学习记录)

目录 一、DataBinding简介二、findViewById 和 DataBinding 原理及优缺点1. findViewById的优缺点2. DataBinding的优缺点 三、Android mvvm 之 databinding 原理1. 简介和三个主要的实体DataViewViewDataBinding 2.三个功能2.1. rebind 行为2.2 observe data 行为2.3 observe …...

spring 错误百科

一、使用Spring出错根源 1、隐式规则的存在 你可能忽略了 Sping Boot 中 SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道&#xff0c;那么犯错概率还是很高的。类似的案例这里不再赘述。 2、默认配置不合理 3、追求奇技淫巧 4、…...

OpenCV基本操(IO操作,读取、显示、保存)

图像的IO操作&#xff0c;读取和保存方法 1.1 API cv.imread()参数&#xff1a; 要读取的图像 读取图像的方式&#xff1a; cv.IMREAD*COLOR:以彩色模式加载图像&#xff0c;任何图像的图像的透明度都将被忽略。这是默认参数 标志&#xff1a; 1 cv.IMREAD*GRAYSCALE :以…...

1.快速搭建Flask项目

一.Pear Admin Flask 官网文档:http://www.pearadmin.com/doc/index.html 1.1下载安装 # 下 载 git clone https://gitee.com/pear-admin/pear-admin-flask# 安 装 pip install -r requirements.txt1.2修改配置 applications下的config.py docker运行的修改dockerdata/conf…...

编程题四大算法思想(三)——贪心法:找零问题、背包问题、任务调度问题、活动选择问题、Prim算法

文章目录 贪心法找零问题&#xff08;change-making problem&#xff09;贪心算法要求基本思想适合求解问题的特征 背包问题0/1背包问题0/1背包问题——贪心法 分数背包问题 任务调度问题活动选择问题活动选择——贪心法最早结束时间优先——最优性证明 Prim算法 贪心法 我在当…...

core dump管理在linux中的前世今生

目录 一、什么是core dump&#xff1f; 二、coredump是怎么来的&#xff1f; 三、怎么限制coredump文件的产生&#xff1f; ulimit 半永久限制 永久限制 四、从源码分析如何对coredump文件的名字和路径管理 命名 管理 一些问题的答案 1、为什么新的ubuntu不能产生c…...

Springboot整合knife4j配置swagger教程-干货

开启swagger文档&#xff0c;直接上教程。 第一步:引入依赖 <!--swagger 依赖--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></d…...

C++ 中的 Pimpl 惯用法

C 中的 Pimpl 惯用法 介绍 Pimpl&#xff08;Pointer to Implementation&#xff09;是一种常见的 C 设计模式&#xff0c;用于隐藏类的实现细节&#xff0c;从而减少编译依赖和提高编译速度。本文将通过一个较为复杂的例子&#xff0c;展示如何使用智能指针&#xff08;如 s…...

【个人博客系统网站】统一处理 · 拦截器

【JavaEE】进阶 个人博客系统&#xff08;2&#xff09; 文章目录 【JavaEE】进阶 个人博客系统&#xff08;2&#xff09;1. 统一返回格式处理1.1 统一返回类common.CommonResult1.2 统一返回处理器component.ResponseAdvice 2. 统一异常处理3. 拦截器实现3.1 全局变量SESSI…...

深入探索PHP编程:文件操作与输入/输出(I/O)

深入探索PHP编程&#xff1a;文件操作与输入/输出&#xff08;I/O&#xff09; 在PHP编程中&#xff0c;文件操作和输入/输出&#xff08;I/O&#xff09;是不可或缺的关键部分。无论是读取、写入文件&#xff0c;还是处理上传的文件&#xff0c;这些操作都是Web开发的重要组成…...

基于jeecg-boot的flowable流程自定义业务驳回到发起人的一种处理方式

有些粉丝&#xff0c;希望对自定义业务中&#xff0c;驳回到发起人进行处理&#xff0c;比如可以重新进行发起流程&#xff0c;下面就给出一种方式&#xff0c;当然不一定是最好的方式&#xff0c;只是提供一种参考而已&#xff0c;以后可以考虑动态根据流程状态或节点信息进行…...

【大数据知识】大数据平台和数据中台的定义、区别以及联系

数据行业有太多数据名词&#xff0c;例如大数据、大数据平台、数据中台、数据仓库等等。但大家很容易混淆&#xff0c;也很容易产生疑问&#xff0c;今天我们就来简单聊聊大数据平台和数据中台的定义、区别以及联系。 大数据平台和数据中台的定义 大数据平台&#xff1a;一个…...

华为OD:IPv4地址转换成整数

题目描述&#xff1a; 存在一种虚拟IPv4地址&#xff0c;由4小节组成&#xff0c;每节的范围为0-255&#xff0c;以#号间隔&#xff0c;虚拟IPv4地址可以转换为一个32位的整数&#xff0c;例如&#xff1a; 128#0#255#255&#xff0c;转换为32位整数的结果为2147549183&#…...

2023.9 - java - 浅拷贝

与 js的浅拷贝不同&#xff1a; 在 JavaScript 中&#xff0c; Object.assign() 或 spread 运算符等方法可以实现浅拷贝&#xff0c;但只针对对象的第一层属性进行复制。如果一个对象只包含基本数据类型的属性&#xff0c;那么对浅拷贝出来的对象进行修改不会影响原始对象&…...

STM32f103入门(10)ADC模数转换器

ADC模数转换器 ADC简介AD单通道初始化代码编写第一步开启时钟第二步 RCCCLK分频 6分频 72M/612M第三步 配置GPIO 配置为AIN状态第四步&#xff0c;选择规则组的输入通道第五步 用结构体 初始化ADC第六步 对ADC进行校准编写获取电压函数初始化代码如下 Main函数编写 ADC简介 ADC…...