【jQuery入门】为JavaScript而生,简化JavaScript操作的神技术

简介: 之前我们学习了这个JSON热门技术,在之后的学习中都会多多少少的牵扯到JSON相关的知识的,好多技术中也会用到JSON,所以如果你还不知道JSON建议先去看一下我的上一篇博客。

前言


之前我们学习了这个JSON热门技术,在之后的学习中都会多多少少的牵扯到JSON相关的知识的,好多技术中也会用到JSON,所以如果你还不知道JSON建议先去看一下我的上一篇博客。


传送门:【JSON快速入门】使得XML被人们淘汰的技术,你还不知道?


接下来我们开始学习jQuery技术。


初识jQuery

首先在学习jQuery之前你已经要学习过了HTML,CSS, JavaScript等技术。因为jQuery就是为此而诞生的。


什么是jQuery

jQuery是一个快速、简洁的JavaScript框架,是一个优秀的JavaScript代码库(框架)。


JavaScript是一种非常流行的脚本语言,它在web开发领域的地位是不可带替代的,但是JavaScript语法在书写起来比较繁琐。


于是为了简化JavaScript开发,第三厂商开发了JavaScript库,jQuery就是众多JavaScript库中最流行,最受欢迎的一个。


其他的常用的JavaScript库还有:Vue.js,AngularJS,React等。


jQuery的核心特性可以总结为:


(1)jQuery是一个轻量级JS库,使用十分简单;

(2)jQuery的核心是选择器,用于获取页面元素;

(3)具有独特的链式语法和短小清晰的多功能接口;

(4)具有高效灵活的CSS选择器,并且可对CSS选择器进行扩展;

(5)jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。


最核心的就是jQuery的核心是选择器,用于获取页面元素;


我们接下来也会以此展开。


jQuery下载与安装

之前提到了jQuery是由第三厂商开发的JavaScript库,那么说明我们要想使用就得先对其进行下载与安装。


jQuery下载


我们可以去jQuery的官网对其进行下载。在浏览器输入jquery.com即可到达官网。


jQuery安装


要知道的是jQuery采用独立JS文件进行发布,那么我们下载的其实就是一个JS文件。那么我们使用它的时候就是在对应的JavaScript块处引用它这个JS文件即可。


我们可以在Web项目中存放web文件源码的地方创建一个专门存放JS文件的文件夹把下载的jQuery粘贴进去即可。

image.png

这样方便我们对其进行引用。


jQuery选择器

为什么说jQuery的核心是选择器,用于获取页面元素呢?在研究这门技术的时候为什么要这样设计呢?


其实我们在使用HTML开发页面的时候,有两个基本点:


(1)选择HTML页面上的哪些元素。

(2)在这些元素上面做哪些动作。


在生产jQuery这门技术的时候也是围绕着这两点进行的,这是需求。所以说jQuery的核心是选择器,用于获取页面元素。


jQuery选择器用于选中需要操作的页面元素。


jQuery使用语法为:


(1)语法1:jQuery(选择器表达式)

(2)语法2:$(选择器表达式)


这两个语法效果是相同的,只不过第二个是使用了$来代替jQuery而已,他们两个是完全等价的。


jQuery选择器实验室


因为jQuery的功能是用来获取页面元素的,所以为了大家方便学习理解我们先创建一个页面,供后面的学习使用。


jQuery

.myclass {
  font-style:italic;
  color:darkblue;
  }
  .highlight {
  color: red;
  font-size:30px;
  background:lightblue;
  }

 

jQuery选择器实验室

 

选择

 


 

欢迎来到选择器实验室

 

  • 实用软件:CSDN
  •   百度

     

    我是拥有mycalss类的span标签

    我是拥有myclass的p标签

     

        用户名:

        密码:

     

     

        婚姻情况:      未婚      已婚      离异      丧偶    

     

     

     

     

     

     


    页面输出:

    微信图片_20220523182416.png

    这里要注意我们除了,因为之前提到jQuery具有高效灵活的CSS选择器,所以我们在这个HTML中还创建了两个CSS类,方便后面对其进行选择实验。


    image.png

    基本选择器

    基本选择器是iQuery最基础也是最常用的表达式,其语法格式如下:


    语法 说明

    $("#id") ID选择器,指定id元素的对象

    $("标签") 元素选择器,选择指定标签名的选择器

    $(".calss") 类选择器,选中拥有指定css类的元素

    $("S1,S2,SN") 组合选择器,对元素进行组合

    接下来我们使用jQuery对其进行练习使用。


    jQuery是在JavaScript代码块中进行使用的,我们直接在jQuery选择实验室的HTML页面里生成一个JavaScript代码块就行了。


    不过在使用之前我们得先引入jQuery,才可以使用jQuery。

    代码如下:

    //jQuery练习位置



    image.png

    我们的选择器实验室是这个样子的:

    image.png

    我们最后希望在这个输入框里面选择什么标签,然后就能在页面上选中什么。那么我们就需要先进行设置。

    document.getElementById("btnSelect").onclick = function(){
        var selector = document.getElementById("txtSelector").value;
        $(selector).addClass("highlight");
      }


    我们使用JavaScript语句来实现输入框与选择按钮的绑定,这样我们在输入框输入什么标签,那么这个标签就会被加上高亮的CSS类来显示在页面上了。


    如下:在输入p之后所有的p标签就会被置于高亮。

    微信图片_20220523182612.png

    我们继续在输入a,会发现所有的a标签也会被置于高亮

    微信图片_20220523182631.png

    但是之前被变成高亮的标签依然还是高亮。那我们怎么样才能实现输入哪个标签就只有哪个标签变为高亮呢?


    很简单,我们能使它变为高亮是因为我们给这个标签添加了CSS类造成的,那么我们可以在每次添加CSS类之前把原来的所有的高亮CSS类移除啊。


    那怎么样移除所有的高亮类呢?


    我们只需要选中所有的标签进行移除高亮类即可。


    document.getElementById("btnSelect").onclick = function(){
        var selector = document.getElementById("txtSelector").value;
        $("*").removeClass("highlight");
        $(selector).addClass("highlight");
      }


    我们重新进行实验:

    在输入p之后所有的p标签就会被置于高亮。

    微信图片_20220523182646.png

    我们继续在输入a,会发现所有的a标签也会被置于高亮,并且p标签变为原来的样子了。

    微信图片_20220523182714.png

    除此之外我们尝试直接使用标签id与css类对其进行选择。

    /*
        id选择器使用"#id值"进行选择
        css选择器使用".css类名"进行选择
      */
        $("#btnSelect").addClass("highlight");
        $("#marital_status").addClass("highlight");
        $(".myclass").addClass("highlight");


    输出:

    微信图片_20220523182729.png


    层叠选择器

    层叠选择器使是根据元素位置来获取元素的选择器表达式。


    语法格式如下:


    语法 说明

    $("ancestor descendent") 后代选择器

    $("ancestor>descendant") 子选择器

    $("prev~siblings") 兄弟选择器

    分别表示:


    (1)$("A B") 查找A元素下面的所有子节点,包括非直接子节点


    (2)$("A>B") 查找A元素下面的直接子节点


    (3)$("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点


    接下来进行练习。


     $("li a").addClass("highlight");


    输出:

    微信图片_20220523182745.png


     $("li>a").addClass("highlight");


    输出:


    微信图片_20220523182806.png

     $("ul~p").addClass("highlight");


    输出:

    微信图片_20220523182827.png

    大家结合之前jQuery选择实验室给出的源码,思考一下为什么输出效果是这样的。


    属性选择器

    属性选择器是根据元素的属性值来选择元素的选择表达式


    语法格式如下:


    语法 说明

    $("selector[attribute=value]") 选中属性值等于具体值的组件

    $("selector[attributr^=value]") 选中属性值以某值开头的组件

    $("selector(attribute$=value)") 选中属性值以某值结尾的组件

    $("selector[attribute*=value]") 选中属性值包含某值的组件

    代码练习:


     $("a[href*='csdn']").addClass("highlight");


    输出:

    微信图片_20220523182844.png


     $("input[type='password']").addClass("highlight");


    输出:

    微信图片_20220523182858.png

    其他的大家可以自己去尝试。


    之前提到过我们在使用HTML开发页面的时候,有两个基本点:


    (1)选择HTML页面上的哪些元素。

    (2)在这些元素上面做哪些动作。


    接下来我们就来演绎我们可以在被选择的元素上面做哪些动作。


    操作元素属性

    操作元素属性,我们可以分为:获取元素属性、设置元素属性、移除元素属性。


    它们的使用语法为:


    (1)获取元素属性:attr(name|key)

    (2)设置元素属性:attr(原属性, 新属性值)

    (3)移除元素属性:remove(name)


    代码练习:


     var href_attr = $("a[href*='csdn']").attr("href");

     alert(href_attr);


    输出:

    image.png

    显示获取成功。


    接下来我们把csdn首页的url改为我的csdn首页。只需要先获取csdn的href属性然后,对这个属性进行修改即可。


     $("a[href*='csdn']").attr("href", "https://blog.csdn.net/apple_51673523?spm=1011.2124.3001.5343");


    输出:

    image.png

    image.png

    微信图片_20220523183005.png

    最后显示跳转成功。说明我们设置属性成功了。


    我们移除a标签的超链接属性


     $("a").removeAttr("href");


    输出:


    微信图片_20220523183102.png

    操作元素的CSS样式

    在之前我们已经接触过jQuery对CSS样式的操作了,现在再来重新总结一下把!


    (1)css():获取或设置匹配元素的样式属性

    (2)addClass():为每个匹配的元素添加指定的css类

    (3)removeClass():为所有匹配的元素删除全部或指定的css类


    代码练习:

    //设置css属性
      $("a").css("color", "red");
      //获取css属性
      var color = $("a").css("color");
      alert(color);
      //同时添加多个属性
      $("a").css({"color" : "red", "font-weight" : "bold", "font-style":"italic"});
      //添加css类
      $("li").addClass("highlight myclass");
      //移除css类
      $("p").removeClass("myclass");


    看一下对页面会有什么改变呢?

    image.png

    微信图片_20220523183137.png

    大家应该把代码于页面显示图相对比来思考哪些代码实现了哪些改变。


    设置元素内容

    我们对获取元素的内容还可以进行一些操作。


    (1)val():获取或设置输入项的值。

    (2)text():获取或设置元素的纯文本。

    (3)html():获取或设置元素内部的HTML。


    代码练习:

    //设置初始值
      $("input[name='uname']").val("administrator");
      //获取
      var v = $("input[name='uname']").val();
      alert(v);
      //设置标签
      //text与html方法最大的区别在于对于文本中的html标签是否进行转义
      $("span.myclass").text("替换成功!");
      $("span.myclass").html("替换成功!");
      //获取
      var v = $("span.myclass").text();
      alert(v);
      var v = $("span.myclass").html();
      alert(v);


    输出:

    image.png

    image.png

    image.png

    image.png

    在输入url它会出现三个弹窗,然后显示这个页面。


    这里我没有对图片有任何的解说。大家仔细看,并且思考哪些代码实现了哪些改变。


    jQuery事件的处理方法

    jQuery中还提供了一些对事件的处理方法。如:


    on("click", function):为选中的页面你绑定单击事件。

    click(function):时绑定事件的简写形式。

    处理方法中提供了event参数包含了事件的相关信息。


    jQuery常用的事件还有:


    类型 内容

    鼠标事件 click、dbclick、mouseenter、mouseleave、mouseover

    键盘事件 keydown、keyup、keypress

    表单事件 submit、change、change、blur

    文档/窗口事件 resize、load、unload、scroll

    代码练习:

    //on()绑定事件
      $("p.myclass").on("click", function(){
        //$(this)指当前时间产生对象
        $(this).css("background-color", "yellow");
      })
      $("span.myclass").click(function(){
        $(this).css("background-color", "lightgreen");
      })
      //
      $("input[name='uname']").keypress(function(event){
        //console.log(event);
        if(event.keyCode == 32) {
        $(this).css("color", "red");
        }
      })

    结语

    想要良好的掌握这门技术还是得多动手练习啊。以上的代码几乎都有对应的页面输出页面。大家应该仔细思考哪些代码实现了哪些改变。这样会极大的帮助你学习这门技术的。


    相关文章
    |
    2月前
    |
    前端开发 机器人 API
    前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
    本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
    457 2
    |
    17天前
    |
    Web App开发 JavaScript 前端开发
    Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
    Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
    39 1
    |
    2月前
    |
    JavaScript 前端开发 中间件
    探索后端技术:Node.js与Express框架的完美融合
    【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
    |
    2月前
    |
    JavaScript 前端开发 API
    探索后端技术:Node.js的优势和实际应用
    【10月更文挑战第6天】 在当今数字化时代,后端开发是任何成功软件应用的关键组成部分。本文将深入探讨一种流行的后端技术——Node.js,通过分析其核心优势和实际应用案例,揭示其在现代软件开发中的重要性和潜力。
    152 2
    |
    15天前
    |
    JavaScript 前端开发
    js+jquery实现贪吃蛇经典小游戏
    本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
    46 14
    |
    19天前
    |
    缓存 JavaScript 前端开发
    JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
    本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
    28 5
    |
    1月前
    |
    机器学习/深度学习 自然语言处理 前端开发
    前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
    本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
    |
    1月前
    |
    移动开发 前端开发 JavaScript
    前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
    于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
    31 0
    前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
    |
    1月前
    |
    JavaScript 前端开发 中间件
    JS服务端技术—Node.js知识点
    本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
    36 1
    |
    1月前
    |
    监控 前端开发 JavaScript
    React 静态网站生成工具 Next.js 入门指南
    【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
    79 10