热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jQuery初识(介绍)

1.jQuery的介绍?——window.onload事件有事件覆盖的问题因此只能写一个事件——代码容错性差——书写很繁琐。代码量多——代码杂乱无章——很难实现动画效

1.jQuery 的介绍?

  ——window.onload 事件有事件覆盖的问题 因此只能写一个事件

  ——代码容错性差

  ——书写很繁琐。代码量多

  ——代码杂乱无章

  ——很难实现动画效果

 

jQuer 的出现 ,可以解决以上问题

什么是JQuery?

JQuery 是js 的一个库,封装了我们开发过程中要用的一些功能,方便调用,提高开发效率。

 

js库是吧我门常用的功能放到一个单独的文件中,我们用的时候直接引用到页面即可。

关于jQuery的相关资料:

  官网:http://jquery.com/

  官网API文档:http://api.jquery.com/

  汉化API文档:http://www.css88.com/jqapi-1.9/

 

学习jQuery,主要是学什么?

主要学习如何使用jQuery操作DOM,其实就是学习jQuery封装好的那些功API。

这些API的共同特点是:几乎全都是方法。所以,在使用jQuery的API时,都是方法调用,也就是说要加小括号(),小括号里面是相应的参数,参数不同,功能不同。

 jQuery的第一个代码:

  

doctype html>
<html lang&#61;"en">
<head><meta charset&#61;"UTF-8"><title>jQuery的第一个代码title><style>div{width: 200px;height: 200px;margin: 30px;display: none;background-color: skyblue;}style><script type &#61; &#39;text/Javascript&#39; src &#61; &#39;jQuery/jquery-3.3.1.js&#39;>script><script type &#61; &#39;text/Javascript&#39;>$(function(){var hid &#61; $(&#39;button&#39;);var divbox &#61; $(&#39;div&#39;);hid.click(function(){divbox.show();divbox.html(&#39;Json&#39;);});});script>
head>
<body><button>显示button><div>div><div>div><div>div>
body>
html>

JQuery的两大特点&#xff1a;

链式编程&#xff1a; 比如说show() 和html() 可以写成 show().html().

隐式迭代&#xff1a;隐式的反义是显示&#xff0c;隐式迭代的意思是在方法的内部循环遍历&#xff0c;而不用我们自己进行循环&#xff0c;简化我们的操作&#xff0c;方便我们调用

 

JQuery的使用&#xff1a;

使用JQuery的基本步骤&#xff1a;

&#xff08;1&#xff09;&#xff1a;引包

&#xff08;2&#xff09;&#xff1a;入口函数

&#xff08;3&#xff09;:功能实现代码

 

jQuery 的版本

jQuery 有两个大版本&#xff1a;

  • 1.x版本&#xff1a;最新版为 v1.11.3。

  • 2.x版本&#xff1a;最新版为 v2.1.4&#xff08;不再支持IE6、7、8&#xff09;。

  • 3.x版本。

下载jQuery包之后里面会有两个文件&#xff0c;一个是jquery-3.3.1.js&#xff0c;一个是jquery-3.3.1.min.js

它们的区别是&#xff1a;

  • 第一个是未压缩版&#xff0c;第二个是压缩版。

  • 平时开发过程中&#xff0c;可以使用任意一个版本&#xff1b;但是&#xff0c;项目上线的时候&#xff0c;推荐使用压缩版

 

JQuery的入口函数和$符号&#xff1a;

入口函数&#xff08;import&#xff09;&#xff1a;

原生的入口函数指的是&#xff1a;window.onload() &#61; function(){}: 如下&#xff1a;

//原生 js 的入口函数。页面上所有内容加载完毕&#xff0c;才执行。//不仅要等文本加载完毕&#xff0c;而且要等图片也要加载完毕&#xff0c;才执行函数。window.onload &#61; function () {alert(1);}

而 jQuery的入口函数&#xff0c;有以下几种写法&#xff1a;

写法一&#xff1a;

 

//1.文档加载完毕&#xff0c;图片不加载的时候&#xff0c;就可以执行这个函数。$(document).ready(function () {alert(1);})

写法二&#xff1a;&#xff08;写法一的简洁版&#xff09;

//2.文档加载完毕&#xff0c;图片不加载的时候&#xff0c;就可以执行这个函数。$(function () {alert(1);});

写法三&#xff1a;

//3.文档加载完毕&#xff0c;图片也加载完毕的时候&#xff0c;在执行这个函数。$(window).ready(function () {alert(1);})

jQuery入口函数与js入口函数的区别&#xff1a;

区别一&#xff1a;书写个数不同&#xff1a;

  • Js 的入口函数只能出现一次&#xff0c;出现多次会存在事件覆盖的问题。

  • jQuery 的入口函数&#xff0c;可以出现任意多次&#xff0c;并不存在事件覆盖问题。

区别二&#xff1a;执行时机不同&#xff1a;

  • Js的入口函数是在所有的文件资源加载完成后&#xff0c;才执行。这些文件资源包括&#xff1a;页面文档、外部的js文件、外部的css文件、图片等。

  • jQuery的入口函数&#xff0c;是在文档加载完成后&#xff0c;就执行。文档加载完成指的是&#xff1a;DOM树加载完成后&#xff0c;就可以操作DOM了&#xff0c;不用等到所有的外部资源都加载完成。

文档加载的顺序&#xff1a;从上往下&#xff0c;边解析边执行。

 

jQuery的$符号

jQuery 使用 $ 符号原因&#xff1a;书写简洁、相对于其他字符与众不同、容易被记住。

jQuery占用了我们两个变量&#xff1a;$ 和 jQuery。当我们在代码中打印它们俩的时候&#xff1a;

打印结果&#xff1a;

 

从打印结果可以看出&#xff0c;$ 代表的就是 jQuery。

那怎么理解jQuery里面的 $ 符号呢&#xff1f;

$ 实际上表示的是一个函数名 如下&#xff1a;

$(); // 调用上面我们自定义的函数$$(document&#xff09;.ready(function(){}); // 调用入口函数$(function(){}); // 调用入口函数$(“#btnShow”) // 获取id属性为btnShow的元素$(“div”) // 获取所有的div标签元素

如上方所示&#xff0c;jQuery 里面的 $ 函数&#xff0c;根据传入参数的不同&#xff0c;进行不同的调用&#xff0c;实现不同的功能。返回的是jQuery对象。

jQuery这个js库&#xff0c;除了$ 之外&#xff0c;还提供了另外一个函数&#xff1a;jQuery。jQuery函数跟 $ 函数的关系&#xff1a;jQuery &#61;&#61;&#61; $

 

 

js中的DOM对象&#xff0c;和JQuery的对象的比较&#xff08;import&#xff09;&#xff1a;

 

二者的区别

通过 jQuery 获取的元素是一个数组&#xff0c;数组中包含着原生JS中的DOM对象。举例&#xff1a;

针对下面这样一个div结构&#xff1a;





通过原生 js 获取这些元素节点的方式是&#xff1a;

var myBox &#61; document.getElementById("app"); //通过 id 获取单个元素var boxArr &#61; document.getElementsByClassName("box"); //通过 class 获取的是伪数组var divArr &#61; document.getElementsByTagName("div"); //通过标签获取的是伪数组

通过 jQuery 获取这些元素节点的方式是&#xff1a;&#xff08;获取的都是数组&#xff09;

//获取的是数组&#xff0c;里面包含着原生 JS 中的DOM对象。

  console.log($(&#39;#app&#39;));
  console.log($(&#39;.box&#39;));
  console.log($(&#39;div&#39;));

 

设置当前4个div的样式&#xff1a;

      $(&#39;div&#39;).css({&#39;width&#39;: &#39;200px&#39;,&#39;height&#39;: &#39;200px&#39;,"background-color":&#39;red&#39;,&#39;margin-top&#39;:&#39;20px&#39;})

由于JQuery 自带了 css()方法&#xff0c;我们还可以直接在代码中给 div 设置 css 属性。

总结&#xff1a;jQuery 就是把 DOM 对象重新包装了一下&#xff0c;让其具有了 jQuery 方法。

 

二者的相互转换

1、 DOM 对象 转为 jQuery对象&#xff1a;

$(js对象);

2、jQuery对象 转为 DOM 对象&#xff1a;

jquery对象[index]; //方式1&#xff08;推荐&#xff09;jquery对象.get(index); //方式2

jQuery对象转换成了 DOM 对象之后&#xff0c;可以直接调用 DOM 提供的一些功能。如&#xff1a;

$(&#39;div&#39;)[1].style.backgroundColor &#61; &#39;yellow&#39;;
$(&#39;div&#39;)[3].style.backgroundColor &#61; &#39;green&#39;;

总结&#xff1a;如果想要用哪种方式设置属性或方法&#xff0c;必须转换成该类型。

 

 

doctype html>
<html lang&#61;"en">
<head>
<meta charset&#61;"UTF-8">
<title>DOM对象与jQuery对象之间的转化title>
<style>
div
{
width
: 200px;
height
: 200px;
background-color
: skyblue;
margin
: 30px;
display
: none;
}
style>
<script type &#61; &#39;text/Javascript&#39; src &#61; &#39;jQuery/jquery-3.3.1.js&#39;>script>
<script typet &#61; &#39;text/Javascript&#39;>
$(
function(){
var box_obj &#61; $(&#39;div&#39;);
var comeback_obj &#61; $(&#39;button&#39;);
comeback_obj.click(
function(){
box_obj[
1].style.display &#61; &#39;block&#39;;
})
})
script>
head>
<body>
<button>还原键button>
<div>div>
<div>div>
<div>div>body>
html>

上述代码总结&#xff1a;

我们在做jQuery对象向jsDOM对象转换的过程中&#xff0c;我们在执行动作代码的时候&#xff08;比如上述代码中的click事件必须使用jQuery对象的方式 click 来执行&#xff0c;而不是onclick  ,此处是个易混淆点&#xff0c;初学者注意&#xff09;

 

隔行换色&#xff1a;&#xff08;经典例题&#xff09;

DOCTYPE html>
<html>
<head lang&#61;"en"><meta charset&#61;"UTF-8"><title>title><script src&#61;"jquery-3.3.1.js">script><script>//入口函数
jQuery(function () {var jqLi &#61; $("li");for (var i &#61; 0; i < jqLi.length; i&#43;&#43;) {if (i % 2 &#61;&#61;&#61; 0) {//jquery对象&#xff0c;转换成了js对象
jqLi[i].style.backgroundColor &#61; "pink";} else {jqLi[i].style.backgroundColor &#61; "yellow";}}});script>
head>
<body>
<ul><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli>
ul>
body>
html>

 

请用这段代码 与下面这段代码进行比较&#xff1a;

 

doctype html>
<html lang&#61;"en">
<head><meta charset&#61;"UTF-8"><title>隔行换色title><script type &#61; &#39;text/Javascript&#39; src &#61; &#39;jQuery/jquery-3.3.1.js&#39;>script><script type &#61; &#39;text/Javascript&#39;>$(function(){var color_obj &#61; $(&#39;li&#39;);for(var i &#61; 0; i < color_obj.length;i&#43;&#43;){if(i % 2 &#61;&#61; 0){color_obj.eq(i).css(&#39;background&#39;,&#39;red&#39;);}else{color_obj.eq(i).css(&#39;background&#39;,&#39;black&#39;);}}})script>
head>
<body><ul><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli><li>Jsonli>ul>
body>
html>

 

 

注意观察&#xff1a;

我们在代码中运用了jQuery选择器的知识&#xff1a;.eq(index) ,如果我讲eq(index) 换为jQuery对象转换jsDOM对象&#xff0c;就会发生问题&#xff0c;因为jQuery的对象是一个数组&#xff0c;而(转换成一个数组)color_obj[index]就会发生问题&#xff0c;这是我们不能再用.css(‘属性’,&#39;属性值&#39;) 方法了&#xff0c;只能够用.style().属性值的方法来改变属性值。

 

转:https://www.cnblogs.com/zsdbk/p/9122768.html



推荐阅读
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
author-avatar
独孤依人x_762
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有