一、Jquery入门(超详)

*   [5.3 jQuery 对象和 DOM 对象之间的相互转换](about:blank#53_jQuery__DOM__271)

*   *   [5.3.1 jQuery 对象转换为 DOM 对象](about:blank#531_jQuery__DOM__282)

    *   [5.3.2 DOM 对象转换为 jQuery 对象](about:blank#532_DOM__jQuery__295)
  • 六、 解决 jQuery 和其他库的冲突

  • 总结


前言

=====================================================================

本文将带领大家了解 jQuery 的定义,它有什么作用,我们为什么要学它,以及如何使用它,它的语法是什么,最后对比了 jQuery 对象和 DOM 对象的区别。

一、Jquery是什么?

===============================================================================

我们可以简单的理解为 jQuery 是一个 JavaScript 函数库。jQuery 是一个轻量级的"写的少,做的多"的 JavaScript 库。

它有如下的优势:

  • 轻量级
  • 强大的选择器
  • 出色的 DOM 操作的封装
  • 可靠的事件机制
  • 完善的 ajax
  • 不污染顶级变量。
  • 出色的浏览器兼容性。
  • 链式操作方式。
  • 隐式迭代。
  • 行为层与结构层的分离。
  • 丰富的插件支持。
  • 完善的文档。
  • 开源。

二、配置 jQuery 环境

=================================================================================

进入 jQuery 的官方网站 http://jquery.com/,可以下载最新的 jQuery 文件到本地,然后再引入到项目即可。官方网站如下所示:

在这里插入图片描述

引入代码示例:


<head>

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

</head>



注意:这里的路径位置,请大家根据实际的情况自行调整。另外官方网站有两个版本的 jQuery 可供下载:一份是精简过的,另一份是未压缩的(供调试或阅读),请大家根据自己的需要自行选择下载。

当然如果我们不想把 jQuery 下载到本地,也可以使用 Google 的 CDN 或者使用 Microsoft 的 CDN:

使用 Google 的 CDN:

Google CDN 国内已经无法访问,以下内容仅作演示。


<head>

  <script

    type="text/javascript"

    src="http://ajax.googleapis.com/ajax/libs

/jquery/1.4.0/jquery.min.js"

  ></script>

</head>



使用 Microsoft 的 CDN:


<head>

  <script

    type="text/javascript"

    src="http://ajax.microsoft.com/ajax/jquery

/jquery-1.4.min.js"

  ></script>

</head>



三、jQuery 语法

==============================================================================

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。

基础语法是:


$(selector).action();



  • 美元符号 $ 定义 jQuery。

  • 选择符(selector)“查询”和“查找” HTML 元素。

  • jQuery 的 action() 执行对元素的操作。

另外需要注意的是:在 jQuery 库中 $ 符号就是 jQuery 的一个简写形式,例如 KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 3: (“#̲lw”) 和 jQuery("….ajax 和 jQuery.ajax 是等价的,如果没有特别说明,程序中的 $ 符号都是 jQuery 的一个简写形式。

3.1 文档就绪函数


所有 jQuery 函数位于一个 document ready 函数中:


$(document).ready(function(){



});



// 可以简写成



$(funciton(){



});



这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:

  • 试图隐藏一个不存在的元素。

  • 获得未完全加载的图像的大小。

上面的这段代码其实有点类似于传统 JavaScript 中的 window.onload 方法,不过它们还是有一些区别的,简单对比如下所示:

| | window.onload | $(doucment).ready() |

| — | — | — |

| 执行时机 | 必须等待网页中所有的内容加载完毕后才能执行(包括图片) | 网页中所有 DOM 结构绘制完毕后就执行,可能 DOM 元素关联的东西并没有加载完 |

| 编写个数 | 不能同时编写多个。 | 能同时编写多个。 |

编写个数的意思就是:


window.onload = function () {

  alert("test1");

};

window.onload = function () {

  alert("test2");

};

//结果只会输出 test2。




$(document).ready(function () {

  alert("test1");

});

$(document).ready(function () {

  alert("test2");

});

//结果两次都输出



3.2 编写我们的第一个 jQuery 程序


例子:


<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8" />

    <title></title>

    <!-- Microsoft  的 CDN 的方式加载jQuery -->

    <head>

        <script

                type="text/javascript"

                src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"

        ></script>

    </head>

</head>

<body>

<script type="text/javascript">

    //等待dom元素加载完毕

    $(document).ready(function () {

        //弹出一个框:显示hello world

        alert("hello world");

    });

</script>

</body>

</html>



请添加图片描述

四、 jQuery 代码风格

=================================================================================

良好的代码风格使得代码更加具有可读性,适当的注释代码,对于日后代码的维护也是非常有利的。来看个例子:


<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

    <title></title>

        <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>

  </head>

  <body>

    <div class="box">

      <ul class="menu">

        <li class="level1">

          <a href="#">春天</a>

          <ul class="level2">

            <li>春意盎然</li>

            <li>春意盎然</li>

            <li>春意盎然</li>

            <li>春意盎然</li>

          </ul>

        </li>

        <li class="level1">

          <a href="#">夏天</a>

          <ul class="level2">

            <li>夏日炎炎</li>

            <li>夏日炎炎</li>

            <li>夏日炎炎</li>

            <li>夏日炎炎</li>

          </ul>

        </li>

        <li class="level1">

          <a href="#">秋天</a>

          <ul class="level2">

            <li>秋高气爽</li>

            <li>秋高气爽</li>

            <li>秋高气爽</li>

            <li>秋高气爽</li>

          </ul>

        </li>

      </ul>

    </div>

    <script type="text/javascript">

      //等待dom元素加载完毕

      $(document).ready(function () {

        $(".level1>a").click(function () {

          $(this)

            .addClass("current")

            .next()

            .show()

            .parent()

            .siblings()

            .children("a")

            .removeClass("current")

            .next()

            .hide();

          return false;

        });

      });

    </script>

  </body>

</html>



代码很简单,我们没有加入 css 样式这些,主要还是讲解 jQuery,运行效果为:

请添加图片描述

简单解释一下这段代码,当鼠标点击到 a 标签的时候给其添加一个名为 current 的 class,然后调用 next() 和 show() 将其后面的元素显示出来,然后调用 parent()、siblings()、children(“a”) 将它的父辈的同辈元素的内部的子元素 a 都去掉一个名为 current 的 class (removeClass(“current”)),并且将紧邻它们后面的元素都隐藏。

这就是 jQuery 的强大的链式操作,一行代码就完成了我们导航栏的功能,大家可以试着去写一下原生的 JavaScript 代码,看看需要写多少行,这也就是我们 jQuery 的魅力所在。当然上面的那些方法看不懂也没关系,后面都会讲解的。不过为了进一步改善代码的可读性和可维护性,推荐一种写法:


$(document).ready(function () {

  $(".level1>a").click(function () {

    $(this)

      .addClass("current") //给当前元素添加"current"样式

      .next()

      .show() //下一个元素显示

      .parent()

      .siblings()

      .children("a")

      .removeClass("current") //父元素的同辈元素的子元素a移除"current"样式

      .next()

      .hide(); //它们的下一个元素隐藏

    return false;

  });

});



也就是说适当的换行和添加注释可以让我们对代码作用一目了然,增加代码的可读性,便于日后的维护,提高开发效率。

五、 jQuery 对象和 DOM 对象

=======================================================================================

5.1 DOM 对象


DOM (Document Object Model)对象,也就是我们经常说的文档对象模型,每一份 DOM 都可以表示成一棵 DOM 树:

在这里插入图片描述

比如这样的一段代码:


<h1></h1>

<p></p>

<ul>

  <li></li>

</ul>



h1,p,ul 以及 li 标签都是 DOM 元素节点,我们可以通过 JavaScript 中的 document.getElementById(),document.getElementsByTagName() 等来获取元素节点,像这样获取的 DOM 元素就是 DOM 对象,DOM 对象可以使用 JavaScript 中的方法,比如:


var domObj = document.getElementById("id"); //获取DOM对象

var objHtml = domObj.innerHTML; //使用JavaScript中的属性innerHTML



5.2 jQuery 对象


jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象。jQuery 对象是 jQuery 独有的,如果一个对象是 jQuery 对象,那么它就可以使用 jQuery 里的方法,比如:


$("#xnm").html(); //获取id为syl的元素内的html代码,html()是jQuery中的方法



这段代码等同于:


document.getElementById("xnm").innerHTML;



在 jQuery 对象中无法使用 DOM 对象中的任何方法,例如 $(“#xnm”).innerHTML; 之类的写法是错的,可以使用 $(“#xnm”).html(); 之类的 jQuery 方法来代替,同样的道理,DOM 对象也不能使用 jQuery 里的方法,例如:document.getElementById(“xnm”).html();也是会报错的。

注:用 #id 作为选择符取得的是 jQuery 对象而并非 document.getElementById(“id”); 所得到的 DOM 对象,两者并不等价。我们一定要从开始就树立这样的一个观念:jQuery 对象和 DOM 对象是有区别的,它们并不是等价的。

5.3 jQuery 对象和 DOM 对象之间的相互转换


在讲解 jQuery 对象和 DOM 对象之间的相互转换之前,我们先约定好定义变量的风格,如果获取的是 jQuery 对象,那么我们在变量前面加上 $ 符号,例如:


var $test = jQuery 对象;

#### 算法刷题

大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。



![](https://img-blog.csdnimg.cn/img_convert/c582a01373152bb4cd38bc6ad5cc8027.png)



**写在最后**

**最后,对所以做Java的朋友提几点建议,也是我的个人心得:**

1.  疯狂编程

2.  学习效果可视化

3.  写博客
4.  阅读优秀代码
5.  心态调整


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/740736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录-Day38

509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 …

20.6k stars! 介绍一款完整、易于维护的开源的电商商城系统

项目介绍 Mall4j商城系统致力于为中小企业打造一个完整、易于维护的开源电商平台&#xff0c;采用当前流行的技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会员管理、运营管理、内容管理、统计报表、权限管理、设置等多个模块。 项目支持小程序 PC H…

内容安全复习 1 - 信息内容安全概述

文章目录 信息内容安全简介网络空间信息内容安全大模型 人工智能简介 信息内容安全简介 网络空间 网络空间是融合物理域、信息域、认知域和社会域&#xff0c;控制实体行为的信息活动空间。 上图展示了网络空间安全的结构。可以看到将网络空间划分为了网络域和内容域两个部分。…

SpringBoot整合Nacos并开启鉴权

关于Nacos的介绍就不在多说&#xff0c;不知道的可以看看Nacos的官网&#xff1a;nacos.io    1、下载安装Nacos 下载地址&#xff1a;https://nacos.io/download/nacos-server/&#xff0c;下载后将Nacos解压到本地磁盘即可&#xff0c;Nacos使用Java语言开发&#xff0c;因…

Chrome谷歌浏览器如何设置,才能正常使用?

Chrome浏览器&#xff0c;也被称为谷歌浏览器&#xff0c;由于简洁的界面设计&#xff0c;极快的响应速度&#xff0c;强大的插件商店&#xff0c;在全球浏览器市场份额中一直都处于遥遥领先的地位。但是因为2010年谷歌宣布退出中国&#xff0c;国内不能再使用谷歌的服务&#…

统计学三学习笔记

一&#xff0c;t分布 二&#xff0c;置信区间 最终要用② n越大&#xff0c;s越小&#xff0c;置信区间越小 三&#xff0c;配对样本t检验 假如有两个族群&#xff1a;

sed和awk

sed和awk 文章目录 sed和awksedawk grep就是查找文件中的内容&#xff0c;扩展正则表达式 sed sed是一种流编辑器&#xff0c;一次处理一行内容&#xff08;增删改查&#xff09; 如果只是展示&#xff0c;会放在缓冲区&#xff08;模式空间&#xff09;&#xff0c;展示结束…

Spring Boot 快速入门4 ——JSR-303 数据校验

目录 一、前言 二、JSR303 简介 三、使用方法 常用注解 Validated、Valid区别 四、编写测试代码&#xff1a; 1. 实体类添加校验 2. 统一返回类型 3. 测试类 4.我们把异常返回给页面 5.抽离全局异常处理 2. 书写ExceptionControllerAdvice 一、前言 我们在日常开发…

鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二

一、鸿蒙应用界面开发 弹性布局-Flex 语法 /* 弹性容器组件 Flex() 位置&#xff1a; Flex默认主轴水平往右&#xff0c;交叉轴垂直向下&#xff08;类似Row&#xff09; 语法&#xff1a; Flex(参数对象){子组件1,子组件2,子组件3 } 属性方法&#xff1a; direction&#xf…

Halcon 根据霍夫变换在图像中寻找直线

一 霍夫变换 1 定义 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一.几何形状包括圆&#xff0c;椭圆&#xff0c;直线等等. 2 直线方程 直线的方程可以用yk*xb 来表示&#xff0c;其中k和b是参数&#xff0c;分别是斜率和截距; 3 霍夫变换原理&#xff1a; 设…

《看不影子的少年》一部探讨偏见与接纳的电视剧❗

《看不见影子的少年》这部电视剧以其独特的视角和深刻的主题 给我留下了深刻的印象。该剧讲述了一位与众不同的少年 他无法在阳光下留下影子&#xff0c;象征着他在社会中的孤独与不被理解 观看过程中&#xff0c;可以感受到少年内心的挣扎与渴望 他渴望被接纳&#xff0c;渴…

电脑显示器无信号?一文教你解决!

电脑显示器无信号是一个常见的问题&#xff0c;可能会让用户感到困惑和沮丧。无信号通常表示显示器没有接收到来自电脑的视频信号&#xff0c;这可能是由于多种原因引起的&#xff0c;包括硬件连接问题、设置错误、驱动问题等。本文将详细介绍解决电脑显示器无信号的三种方法&a…

C语言小例程28/100

题目&#xff1a;利用递归方法求5!。 程序分析&#xff1a;递归公式&#xff1a;fnfn_1*4! #include <stdio.h>int main() {int i;int fact(int);for(i0;i<6;i){printf("%d!%d\n",i,fact(i));} } int fact(int j) {int sum;if(j0){sum1;} else {sumj*fac…

NtripShare2024年第二季度主要技术进展

NtripShare Cloud GNSS解算云平台方面 1、解算引擎增加根据卫星多路径效应自动剔除卫星的算法。 2、解算引擎增加解算时间段限制&#xff08;发现贵州某地在晚12点周期性效果变差&#xff09;。 3、增加2000坐标至地方坐标系转换的支持(七参数、四参数、TGO高程拟合&#x…

什么是车载测试?车载测试怎么学!

1、车载测试是什么&#xff1f; 车载测试分很多种&#xff0c;有软件测试、硬件测试、性能测试、功能测试等等&#xff0c;每一项测试的内容都不一样&#xff0c;我们所说的车载测试主要指的是汽车软件的功能测试&#xff0c;也就是针对汽车实现的某一个功能&#xff0c;而进行…

无人机巡检小羊仿真

详细视频地址 仿真效果 可视化三维仿真 gazebo物理仿真 px4 飞控仿真 仿qgc简易地面站 详细视频地址

playwright录制脚本原理

Paywright录制工具UI 在上一篇博客中介绍了如何从0构建一款具备录制UI测试的小工具。此篇博客将从源码层面上梳理playwright录制原理。当打开playwright vscode插件时&#xff0c;点击录制按钮&#xff0c;会开启一个新浏览器&#xff0c;如下图所示&#xff0c;在新开浏览器页…

Shopee API接口:轻松获取虾皮购物平台的商品数据信息

一、核心功能介绍——获取虾皮购物平台的商品数据信息 实时获取商品数据&#xff1a;Shopee接口提供实时更新的商品数据&#xff0c;包括商品名称、价格、库存、描述等详细信息&#xff0c;确保商家能够及时掌握商品最新状态。高效数据检索&#xff1a;商家可以根据不同的需求…

作为一名车载测试工程师,核心能力是什么?

最近经常有人会问我&#xff0c;说XX培训机构专门培训车载测试&#xff0c;我要去&#xff0c;而且薪资很高&#xff0c;现在是风口&#xff0c;你是否也听过这样的销售话语&#xff1f; 然后进去培训2-3个月&#xff0c;包括上车测试&#xff0c;后来进去后发现原来真实的场景…

为什么都放弃了LangChain?

或许从诞生那天起&#xff0c;LangChain 就注定是一个口碑两极分化的产品。 看好 LangChain 的人欣赏它丰富的工具和组建和易于集成等特点&#xff0c;不看好 LangChain 的人&#xff0c;认为它注定失败 —— 在这个技术变化如此之快的年代&#xff0c;用 LangChain 来构建一切…