本文介绍: 【14.0】前端基础jQuery引入【一】什么是jQueryjQuery一个轻量级的、兼容浏览器的JavaScript库。jQuery使用户能够更方便地处理HTML Document、Events实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“jQuery内部封装原生js代码能够通…

【14.0】前端基础jQuery引入

【一】什么是jQuery

jQuery内部封装原生js代码

能够通过书写更少的代码,完成js操作,类似于Python中的模块

前端叫 “类库”

兼容多个浏览器

【二】导入模块

【1】Python当中导入模块发生了哪些事?

导入模块其实需要消耗资源

在Python中,导入模块可以分为两个阶段编译阶段和运行阶段。

编译阶段,Python解释器扫描分析源代码,将导入语句转换为相应的字节指令。这些指令会被存储编译后的.pyc文件中,以便在之后的运行阶段使用

运行阶段,当执行到导入模块语句时,Python会按照以下步骤进行模块的导入:

  1. 搜索模块解释器首先会搜索模块是否已经加载内存中。如果是内置模块,则直接使用;如果是标准库或第三方库,会按照一定的搜索路径进行查找

  2. 编译模块:如果模块没有加载内存中,则解释器会在硬盘上找到对应的.py文件,并将其编译字节文件(.pyc)。编译后的字节文件包含了模块的定义函数、类等信息

  3. 创建模块命名空间解释器创建一个新的命名空间存放模块中的变量函数和类等。模块中的全局变量成为命名空间的属性

  4. 执行模块代码解释器开始执行模块的字节指令逐行解释执行模块中的代码。这会导入模块中定义函数、类和全局变量等。

  5. 返回模块对象:当模块中的代码执行完毕后,解释器返回一个表示该模块的模块对象可以通过对象访问模块中定义内容

总结起来,导入模块时,Python解释器搜索编译执行模块的代码,并创建一个命名空间来存放模块中的变量函数。这样,我们可以当前代码使用模块中定义功能了。

【2】jQuery中导入类库发生了哪些事?

它的文件非常小(几十kb),基本影响网络速度

在jQuery中导入类库(也称为插件)可以通过以下步骤完成:

  1. 获取类库文件:首先需要获取所需的类库文件(通常是一个 JavaScript 文件),可以官方网站或其他来源下载得到。

  2. 导入类库文件:将类库文件保存项目目录中,并在 HTML 文件中使用<script&gt;标签来导入类库文件。在<script&gt;标签中,使用src属性指定类库文件的路径,让浏览器能够加载执行该文件。

    <script src="path/to/jquery.js"&gt;</script>
    <script src="path/to/plugin.js"></script>

    这样,当浏览器解析到这两个<script>标签时,就会下载并执行对应的类库文件。

  3. 使用类库功能:一旦类库文件被加载和执行,就可以使用其中提供的功能了。通常,类库会扩展或增强原生 JavaScript 的功能通过页面引入类库文件,我们可以使用类库提供的函数、方法特性

    $(document).ready(function() {
      // 在文档加载完成后执行一些代码
      // 使用类库提供的函数或方法
    });

    上述代码示例中,$符号是 jQuery 的别名通过调用.ready()方法我们可以确保在文档加载完成后执行传入的函数。

总结起来,导入 jQuery 类库涉及获取类库文件、在 HTML 文件中导入类库文件,并通过调用类库提供的功能实现页面元素操作动态加载事件处理功能

【三】jQuery的优势

【1】详细

(1)简化DOM操作

(2)跨浏览器兼容性:

(3)丰富的插件生态系统

(4)AJAX支持

(5)动画效果

扩展性与可定制性:

【2】小结

(1)一款轻量级的JS框架

(2)丰富的DOM选择器

(3)链式表达式

(4)事件样式动画支持

  • jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。

(5)Ajax操作支持

(6)跨浏览器兼容

(7)插件扩展开发

【四】jQuery学习内容

  1. 选择器
  2. 筛选
  3. 样式操作
  4. 文本操作
  5. 属性操作
  6. 文档处理
  7. 事件
  8. 动画效果
  9. 插件
  10. eachdata、Ajax

下载链接jQuery官网

中文文档jQuery AP中文文档

【五】jQuery的版本

【1】1.x

  • 兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增
  • 因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)

【2】2.x:

  • 不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增
  • 如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)

【3】3.x:

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

【六】jQuery配置

【1】settings设置模板

【2】基于网络分发(CDN)

BootCDN – Bootstrap 中文网开源项目免费 CDN 加速服务

压缩https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js

压缩https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js

【七】jQuery基本语法

jQuery(选择器).action()
  • 秉承jQuery宗旨,jQuery 简写成 $
jQuery(选择器) ---->  $(选择器)

【八】jQuery与原生JS代码比较

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap-grid.min.css"></script>

</head>
<body>
<p id="p1">人生得意须尽欢!</p>

<script>
    // 原生js
    let pEle = document.getElementById("p1");

    pEle.color = "red";

    // jQuery
    $('p').css("color", "blue");

</script>
</body>
</html>

【九】基本选择器

jQuery是一个流行的JavaScript库,它提供了便捷的方法来选择和操作HTML元素。以下是jQuery中的九个基本选择器:

【1】元素选择器(Element Selector):

$('p');

【2】ID选择器(ID Selector):

$('#myElement');

【3】类选择器(Class Selector):

$('.myClass');

【4】属性选择器(Attribute Selector):

  • 使用元素的属性和属性值进行选择。
  • 示例:选择所有具有target” 属性的元素
$('[target]');
$('a[href^="https://"]');

【5】选择器组合(Multiple Selectors):

  • 通过逗号分隔多个选择器,同时选择多个元素。
  • 示例:选择所有段落元素和具有 “myClass” 类的元素
$('p, .myClass');

【6】后代选择器(Descendant Selector):

  • 选择某个元素的后代元素。
  • 示例:选择所有 “myElement” 元素内的段落元素
$('#myElement p');

【7】子元素选择器(Child Selector):

  • 选择某个元素的直接子元素。
  • 示例:选择所有 “myElement” 元素的直接子元素中的段落元素
$('#myElement > p');

【8】下一个兄弟元素选择器(Next Adjacent Selector):

  • 选择紧接在指定元素后的下一个兄弟元素。
  • 示例:选择紧接在 “myElement” 元素后的下一个兄弟元素
$('#myElement + div');

【9】后续所有兄弟元素选择器(Following Siblings Selector):

  • 选择指定元素之后的所有兄弟元素。
  • 示例:选择紧接在 “myElement” 元素后的所有兄弟元素中具有 “myClass” 类的元素
$('#myElement ~ .myClass');

【10】示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap-grid.min.css"></script>

</head>
<body>
<div id="d1">div
    <span>div>span</span>
    <p>div>p
        <span>div>p>span</span>
    </p>
</div>
<p class="p1">p</p>
<span>span</span>
</body>
</html>
  • id 选择器
$("#d1")
// S.fn.init [div#d1]

返回的是jQuery对象

$('.p1')
// S.fn.init [p.p1, prevObject: S.fn.init(1)]
  • 标签选择器
$('span')
// S.fn.init(3) [span, span, span, prevObject: S.fn.init(1)]
$("#d1")[0]
// <div id=​"d1">​…​</div>​
  • 标签对象jQuery对象
$(document.getElementById("d1"))
// S.fn.init [div#d1]

【十】组合选择器

【1】并集选择器(Union Selector):

【2】后代选择器(Descendant Selector):

【3】子元素选择器(Child Selector):

  • 选择某个元素的直接子元素。
  • 例如:$("parent > child")

【4】相邻兄弟选择器(Adjacent Sibling Selector):

  • 选择某个元素的下一个相邻兄弟元素。
  • 例如:$("element + sibling")

【5】兄弟选择器(General Sibling Selector):

  • 选择某个元素之后的所有兄弟元素。
  • 例如:$("element ~ siblings")

【6】过滤选择器(Filter Selector):

【十一】分组嵌套

在jQuery中,”分组“和”嵌套“也是常见的用法用于选择和操作DOM元素。

【1】分组(Grouping):

  • 使用逗号将多个选择器组合在一起,可以同时选择匹配这些选择器的所有元素。
  • 例如:
$('.selector1, .selector2').doSomething();
  • 通过分组选择器,可以在一个操作中同时对多个元素进行相同的操作。

【2】嵌套(Nesting):

  • 在一个选择器内部嵌套另一个选择器,用于表示某个选择器的子元素或特定关系的元素。
  • 例如:
$('parent').find('.child').doSomething();
  • 通过嵌套选择器,可以在指定的父元素下选择特定的子元素进行操作。

  • 嵌套选择器在jQuery中非常有用,可以通过链式调用来实现更复杂的选择和操作。

  • 例如:

$('parent')
  .find('.child')
  .filter('.special')
  .doSomething();
  • 上述代码首先选择父元素
  • 然后在父元素下找到特定的子元素
  • 并进一步筛选出特定的具有”.special”类名的元素
  • 最后对这些元素执行相应的操作。

【十二】组合选择器/分组与嵌套案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap-grid.min.css"></script>

</head>
<body>

<span>span1</span>
<span>span2</span>

<div id="d1">div
    <span>
        div>span1
    </span>
    <p id="d2">div>p
        <span>
            div>p>span
        </span>
    </p>
    <span>
        div>span2
    </span>
</div>

<span>span-1</span>
<span>span-2</span>
</body>
</html>
  • id选择器
// 取 div 标签
$("div")
S.fn.init(2) [div#d1, div.d2, prevObject: S.fn.init(1)]

// 取 id为d1的div标签
$('div#d1')
// S.fn.init [div#d1, prevObject: S.fn.init(1)]
$('#d1,.p1,p')
// S.fn.init(2) [div#d1, p#p1, prevObject: S.fn.init(1)]
  • 后代选择器
$('div span')
// S.fn.init(3) [span, span, span, prevObject: S.fn.init(1)]
  • 儿子后代选择器
$('div>span')
// S.fn.init(2) [span, span, prevObject: S.fn.init(1)]
  • 紧挨着的标签
$('div+span')
// S.fn.init [span, prevObject: S.fn.init(1)]
$('div~span')
// S.fn.init(2) [span, span, prevObject: S.fn.init(1)]

【十三】基本筛选

【1】:first

  • 选择第一个匹配元素。

【2】:last

  • 选择最后一个匹配元素。

【3】:even

【4】:odd

【5】:eq(index)

【6】:gt(index)

【7】:lt(index)

  • 选择索引小于指定值index的元素(索引从开始)。

【8】:header

  • 选择所有标题元素(例如h1、h2等)。

【9】:animated

【10】:focus

  • 选择当前获得焦点的元素。

【11】:contains(text)

【12】:empty

【13】:parent

  • 选择有子元素或文本的元素。

可以使用:even筛选器选择表格中的偶数行,并使用:contains筛选器选择包含特定文本的元素。

【十四】基本筛选器案例

  • ul下的所有li标签
$('ul li')
/* S.fn.init(10) [li, li, li, li.l1, li, li, li, li, li#d1, li, prevObject: S.fn.init(1)] */
  • 只拿第一个/最后一个
$('ul :first')
// S.fn.init [li, prevObject: S.fn.init(1)]
$('ul :last')
// S.fn.init [li, prevObject: S.fn.init(1)]
  • 只拿索引为偶数的标签
$('ul :even')
/* S.fn.init(5) [li, li, li, li, li#d1, prevObject: S.fn.init(1)] */
  • 只拿索引为奇数的标签
$('ul :odd')
/* S.fn.init(5) [li, li.l1, li, li, li, prevObject: S.fn.init(1)] */
  • 拿到索引大于2的所有元素
$('ul :gt(2)')
// S.fn.init(7) [li.l1, li, li, li, li, li#d1, li, prevObject: S.fn.init(1)]
$('ul li:not("#d1")')
S.fn.init(9) [li, li, li, li.l1, li, li, li, li, li, prevObject: S.fn.init(1)]

【十五】属性选择器

【1】选择具有特定属性的元素:$("[attribute]")

  • 例如,选择所有具有”src“属性的图片元素:$("img[src]")

【2】选择具有特定属性值的元素:$("[attribute=value]")

【3】选择具有包含特定属性值的元素:$("[attribute*=value]")

  • 例如,选择所有”src“属性值包含”image“的图片元素:$("img[src*='image']")

【4】选择具有以特定属性值开头的元素:$("[attribute^=value]")

  • 例如,选择所有”href”属性值以”https://”开头的链接元素:$("a[href^='https://']")

【5】选择具有以特定属性值结尾的元素:$("[attribute$=value]")

  • 例如,选择所有”src“属性值以”.jpg“结尾的图片元素:$("img[src$='.jpg']")

【6】选择具有以特定属性值开头且以特定字符串结尾的元素:$("[attribute^=value][attribute$=value]")

  • 例如,选择所有”src”属性值以”images/”开头且以”.jpg“结尾的图片元素:$("img[src^='images/'][src$='.jpg']")

【7】案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap-grid.min.css"></script>

</head>
<body>
<input type="text" username="dream">
<input type="text" username="chimeng">
<p username="dream"></p>
</body>
</html>
$('username')
// S.fn.init [prevObject: S.fn.init(1)]

// 取属性中带有username的标签
$('[username]')
// S.fn.init(3) [input, input, p, prevObject: S.fn.init(1)]

// 取属性中带有username并且值为 dream的标签
$('[username="dream"]')
// S.fn.init(2) [input, p, prevObject: S.fn.init(1)]

// 取属性中带有username并且值为 dream的p标签
$('p[username="dream"]')
// S.fn.init [p, prevObject: S.fn.init(1)]

【十六】表单筛选器

【演示】

原文地址:https://blog.csdn.net/Chimengmeng/article/details/131588736

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_16169.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注