js与jQuery的区别以及jQuery选择器和方法的使用

简介: js与jQuery的区别以及jQuery选择器和方法的使用

使用jQuery


jQuery是什么:jQuery是JavaScript的类库,封装了很多js代码。类似java中的类库一样里面一个类中有很多别人写好的功能。90%以上的公司都在用jQuery。


官网:http://jquery.com/

为什么要学jQuery:可以简化JavaScript开发,jQuery中包含有:选择器,CSS样式,HTML事件处理,JS动画 以及丰富的插件等等,而且浏览器兼容性很高


打开jQuery官网首页:write less,do more 写的少做的更多

为什么要用jQuery?很简单,就一句话,因为用的人多。我们可以先看一下比较流行的前端框架https://www.bootcdn.cn/


了解一下Bootstrap 现在企业用的非常的多,还有React、jQuery、Angular.js、Vue.js这些前端框架是目前企业用的非常多的


Vue.js 目前移动端 微信端用的前端框架最多的


什么情况下用jQuery:中大型网站开发,一些前端框架的基础,比如EasyUI


怎么用:我们今天开始用HBuilder写代码,我们中国人开发的软件呦!具体怎么代码怎么写,小伙伴们跟着我看疗效。


准备工作:


下载jQuery库:

登录jQuery官网http://jquery.com/  

点击下载

有三种版本:

1.Download the compressed, production jQuery 3.3.1 生产版本

2.Download the uncompressed, development jQuery 3.3.1 开发版本

3.Download the map file for jQuery 3.3.1

建议下载开发版本

2、HBuilder使用 创建项目

3、把jQuery库复制到项目中的js文件夹中

4、引入jQuery库文件:

注意:script标签中不要写内容,写jQuery代码就再写一对script标签


js与jQuery代码对比


案例1:点击按钮获取文本框中的值(JS对比jQuery),如下图

JS版:

jQuery版:

先引入jQuery库


jQuery选择器:用来选中元素

       1.1基本选择器


       1.2层次选择器


       1.3过滤选择器


       1.4表单选择器


1.1:基本选择器

       基本选择器包括:


       ID选择器 #:#标签id名


       类选择器 . :.标签name名


       元素选择器 :标签名  元素选择器又叫做标签选择器 直接用标签名来选中。


基本方法


通配符:如果选中所有的元素 可以直接用通配符 * 表示所有。

选择器还可以组合多个一起使用,可以分为并集和交集。

并集:selector1,selector2,用逗号隔开

交集:selector1 selector2 用空格隔开

下面我们用代码分别实现一下不同选择器实现效果的方式:

案例2:使用基本选择器改变元素背景色和字体颜色(div、p、span)

我们先来写两个div用来对比一下一个添加一个id属性,一个添加一个class属性

<h2>2、基本选择器</h2>
<div id="one">

我是第一个盒子

</div>
<div class="two">

我是第二个盒子

</div>

然后我们再来看 jQuery 代码怎么写,首先 我们要找到第一个div然后在修改它的背景色,那么怎么写呢?大家来看

$("#one") 找到 id 为 one 的 div 接着再修改背景色,直接在后面点,点不出来提示,那么来看一下怎么让他有提示。点击语法提示库,对。选择jquery.2。现在还可以 好歹有点提示了。那么背景色的css属性单词是哪个?伙计们还记得么?background 对的。我们接着直接修改属性 值就OK了,非常简单:

$("#one").css("background","green");

现在我们已经把id为one的div的背景色修改为了绿色。如果我现在要修改为红色,该怎么写?

好,那么我们接着试一下用类选择器该怎么实现:同样的,我们还是需要先找到div,只不过这次不是根据id找,而是根据class类来找。该怎么写?

刚刚id选择器用#,现在我们用类选择器 应该是什么?对 用点

$(“.two”)。再接着我们把背景色修改为yellow:$(".two").css("background","yellow");怎么样?就是这么简单!

我们先注释一下,那么我们现在可不可以直接设置两个div的背景色统一都为红色,来看一下 该怎么写?同样的刚才我们分别用id选择器和 类选择器 找到了一个div然后设置背景色就可以了。现在我们是不是要设置所有div的背景颜色。那么我们可不可以直接根据div标签来设置。那么我们来用元素选择器来试一下,首先先找到div:$(“div”)找到所有的div,然后设置背景色:$("div").css("background","red");

如果是现在我想设置div背景色的同时,再把div中的字体颜色设置为粉色,大家来看一下该怎么写!现在我们要同时设置两个属性,背景色和字体颜色。那么这种同时要设置多个样式时格式该咋写?

一样的,首先找到div:$("div"),再接着设置样式,只不过现在要设置多个,那么就要把之前的逗号改为冒号,然后后面逗号再接着写第二个属性 :$("div").css({"background":"red","color":"blue"});设置多个样式属性时,一定要注意语法格式,一定要细心细心再细心。

通配符:* 接着我们来看一下* 这个有什么用。来,我们直接把上面的代码再写一遍,把选择器改为* 看一下效果:

$("*").css({"background":"pink","color":"blue"});,哎呦我去,全粉了。正如大家所料,*表示所有,那么就是给所有的元素设置属性了。

多个选择器(并集):selector1,selector2:

接下来我们来看一下如果我们想把网页中所有的p标签 和 span标签字体全部变成 粉色的该怎么写?首先我们同样的是给所有的p标签 和 span标签设置样式,我们可以直接用元素标签,先写一个p,然后还要再加上span:$("p,span").css("color","pink"); 来,我们看一下疗效。所有的p 和 span 不管是在div内的 还是在div外边的全部受到影响。这种写法我们叫做多个选择器 并集。

多个选择器(交集):selector1 selector2

那么有并集 应该也会有交集。什么是交集,我们来写一下看看。

$("#one p").css("color","pink");大家觉得这句代码写完,有几句话字体会变色?来 看一下疗效,只有一句话变了颜色。这句话是id为one的div中的p标签。那么大家来想一下,这种空格的 写法表示什么意思?

指定标签内的标签,对的。

那么现在咱们玩点刺激的,现在我在第一个div里面的p段落中再加点东西

我是第一个div中的 第一个p标签

。现在呢,我想只改变   第一个p  这几个字的颜色,大家来看一下该怎么写?前面我们写过$("#one p").css("color","pink");,设置div中的p标签,现在要设置的是div中的p中的 span,该怎么写?哎 对,只需要再来一个空格 然后加上一个span就OK了:

$("#one p span").css("color","pink");

怎么样,今天的课不难吧,会找标签,记住语法格式就OK了

jQuery的核心就是查询

层次选择器:

我们来看一下在线api,找到选择器,来看层级选择器,这里面有四个,第一个 刚才我们已经讲过了。叫什么来着?交集还是并集?

>:子选择器

首先我们来看一下大于号这个,看一下文档上面的解释:用以匹配元素的选择器,并且它是第一个选择器的子元素。大家注意解释说什么?第一个选择器的子元素? 那么大家来猜一下,这个大于号表示什么意思?又该怎么用?文档解释很明显,就是找到第一个选择器中的指定的子元素。那么我们先来看一下:

<div id="one">

我是第一个盒子

我是第一个div中的 第一个p标签

我是第一个div中的 第一个span标签

</div>

这段代码中,有几个span,假如我现在想要设置这两个span标签的颜色 该怎么写?只设置p标签中的span又该怎么写?

设置两个span:

$("#one span").css("color","pink");

设置p中的span

:$("#one p>span").css("color","pink");

先找到div中的p标签,然后再找到p标签中的子标签 span

+:兄弟选择器,同级的第一个

接下来 我们来看一下这个 + 又是什么意思?意思很简单 同级,兄弟级别,那么什么是同级。先来看一下代码:

<div id="one">

我是第一个盒子

我是第一个div中的 第一个p标签

我是第一个div中的 第一个span标签

</div>

我们以这个代码为例来试一下:

$("#one p + span").css("color","pink");

来 看一下效果,div中总共有两个span现在哪一个span受到了影响?是p里面的 还是和p标签同级的? 哎 对了 这就是+的作用

注意 这里面的同级只会得到第一个,也就是只有一个,不会找到其它的同级选择器

~:同级的所有选择器

上面我们说了同级的第一个选择器,我们接着试试看这个是同级的几个选择器。先来看一下代码:

<div id="one">

我是第一个盒子

我是第一个div中的 第一个p标签

我是第一个div中的 第一个span标签

我是第一个div中的 第2个span标签

我是第一个div中的 第3个span标签

我是第一个div中的第二个p标签

</div>

我们直接来试一下看看疗效:

$("#one p~span").css("color","pink");

效果很明显,div中的所有和p标签同级的span标签全部受到影响,其它的同级标签不会受到影响

过滤选择器:

获取第一个元素:first

我们先写一个ul

<ul>
        <li>11111</li>
        <li>22222</li>
        <li>33333</li>
        <li>44444</li>
        <li>55555</li>
        </ul>

First 第一个,那么大家来猜一下 我现在写的这段代码会有什么效果:

$("ul li:first").css("color","pink");

最后一个元素:last

现在再来看一下这个:$("ul li:last").css("color","pink");一个是第一个,一个是最后一个 咋样 简单吧!

获得奇数元素:even

大家先来看一次even是什么意思?奇数? 不不不 是偶数的意思。这个地方很神奇,为嘛呢?因为外国的第一个是0,第二个是1,第三个是2,那么刚好在这里,奇数 表示的是偶数个,偶数表示的是第奇数个。咋样,感觉刺激不,晕不晕?来直接看一下疗效:

$("ul li:even").css("color","pink");

第一行,第三行,第五行受到影响

获取偶数元素:odd

那么我们接着来看这个 odd 上面是奇数行,那么这个很明显了。但是大家一定要注意这两个单词的意思。odd的意思是奇数。even的意思是偶数

$("ul li:even").css("color","pink");

获取某一范围元素:

:gt 大于

现在我们来试一下让大于第一行的li背景色全部改变:

$("ul li:gt(0)").css("background","pink");

注意啦,这个地方和其他的不一样居然有参数了,这个参数表示第几行的下标,而且不包括下标表示的行,那么这个效果很明显是大于下标0的行

:lt 小于

再来试一下这个,刚才那个是大于,不包括参数行,现在这个我们再来看一下:

$("ul li:lt(4)").css("background","pink");

同样的参数行从0开始,不包括参数表示的行

范围:第二行到第四行

现在咱们再来个刺激一点的,掐头去尾,除了第一行,和最后一行,其它的全部选中。我们来试一下我们现在要找到大于0的然后再找到小于4的。代码是不是可以这样写:

$("ul li:gt(0):lt(4)").css("background","pink");

我们来看一下效果,哎,最后一行也选中了,为啥不行呢?我们来分析一下,我们先找到的是大于0的 也就是后面的都包括了,然后再去选中其它的,在这里我们想要选中范围内的 需要先确定 最大 的位置,然后再选中其它的,所以上面的写法是不正确的。我们应该先确定最大的:

$("ul li:lt(4):gt(0)").css("background","pink");

来看一下这个,对了吧。所以这个地方大家一定要注意一下。第一种写法每个li的下标会改变。

表单选择器:

我们先来看一下文档中的表单选择器,这里面基本上表单中的每一个元素都有,我们主要讲一下单选,多选 和 下拉框的选择器。我们先写一下网页代码写个表单:

<form method="post">
性别:<input type="radio" name="sex" id="" value="男" checked="checked" />男
<input type="radio" name="sex" id="" value="女" />女 <br>
爱好:<input type="checkbox" name="hobby" id="" value="eat" />吃饭
<input type="checkbox" name="hobby" id="" value="sleep" />睡觉
<input type="checkbox" name="hobby" id="" value="playDD" />打豆豆<br>
地址:
<select>
<option value ="1">长沙市</option>
<option value ="2">南阳市</option>
<option value ="3">武汉市</option>
</select>
<br>
<input type="button" name="" id="ok" value="提交" />
</form>

单选按钮:

我们先来看一下怎么获取被选中的单选按钮的值怎么获取。我们先给按钮添加一个点击事件,点击按钮获取被选中的单选框的value属性值。

/* 表单选择器 */

//给提交按钮添加点击事件

$("#ok").click(function(){

//获取表单中被选中的单选按钮的值  :radio表示单选按钮 :checked表示被选 //中的

var sex = $(":radio:checked").val();
alert(sex);
})

在这里建议一下小伙伴们后面测试不要用alert弹了。我们以后统一用:confole.info(sex);然后在页面按F12选中控制台 看输出结果

多选按钮:

多选按钮和单选按钮呢 基本上是一样的,来我们对比着上面的写一下试试。

var len = $(":checkbox:checked").length; 
Console.info(len);

先测试一下能不能获取到选中的选项个数。

既然能获取到选中的选项个数,我们接着来获取值。不过多选框选中的可能有多个值,所以这个地方需要each遍历。这个地方写法有点复杂,大家注意一下。

var len = $(":checkbox:checked").each(function(){
var hobby = $(this).val();
console.info(hobby);
});

直接在each里面写匿名函数遍历选中的选项,$(this).val();表示选中的选项的value值

下拉:

接着看咱们的最后一个 下拉。下拉要注意了,单选 和多选直接就是找到选中的选项就行,可是下拉select标签中还有标签,我们要获取的是select中option选项的值,所以这个地方要注意写法。

var address = $("option:selected").val();

获取option标签的value属性值

那如果想要获取长沙市,武汉市,不是获取value值呢?可以获取到吗?

var address = $("option:selected").html();option

标签可以直接这样获取到标签内的网页文本。


相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
28天前
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
122 52
|
1月前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
1月前
|
缓存 JavaScript UED
js中BOM中的方法
【10月更文挑战第31天】
|
24天前
|
JavaScript 前端开发
js+jquery实现贪吃蛇经典小游戏
本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
53 14
|
25天前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
31 5
|
29天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
42 5
|
1月前
|
JavaScript 前端开发
js中的bind,call,apply方法的区别以及用法
JavaScript中,`bind`、`call`和`apply`均可改变函数的`this`指向并传递参数。其中,`bind`返回一个新函数,不立即执行;`call`和`apply`则立即执行,且`apply`的参数以数组形式传递。三者在改变`this`指向及传参上功能相似,但在执行时机和参数传递方式上有所区别。
26 1
|
1月前
|
JavaScript 前端开发
.js方法参数argument
【10月更文挑战第26天】`arguments` 对象为JavaScript函数提供了一种灵活处理参数的方式,能够满足各种不同的参数传递和处理需求,在实际开发中具有广泛的应用价值。
41 7
下一篇
DataWorks