后端程序员的前端必备-jQuery核心学习笔记

简介: 后端程序员的前端必备-jQuery核心学习笔记

1 jQuery概述

1.1 jQuery简介

jQuery是一个快速、简洁的JavaScript代码库。jQuery设计的宗旨是“Write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript操作方式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

1.2 jQuery作用

  • HTML 元素选取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • AJAX
  • Utilities 函数库

2 jQuery的安装【重要】

2.1 引用jQuery库

  • 有两个版本的 jQuery 可供下载:
  • Production version - 用于实际的网站中,已被精简和压缩。
  • Development version - 用于测试和开发(未压缩,便于可读)。

jQuery 库是一个 JavaScript 文件,使用 HTML 的 < script src=“”>< /script> 标签引用

<!--引入jQuery库-->
<script src="js/jquery-3.4.1.min.js"></script>

2.2 CDN引用

CDN的全称是Content Delivery Network,即内容分发网络 , 使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

常见的CDN

<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

3 jQuery使用

3.1 文档就绪函数

  • 好处:确保页面的上元素都加载了之后再执行js代码
  • 原生的js:window.onload = function(){…}
  • jQuery:jQuery(document).ready(function(){…} 简写为:$(function(){})
  • 区别:
  • window.onload要等到页面完全加载完成之后在才会执行,而$(function(){}只需要页面结构加载出来就执行。
  • window.onload只能执行一次,而$(function(){}可以执行多次。
<script>
    //使用js方式获取输入框中的内容
    //console.log(document.getElementById("username").value); // 错误,因为前端代码加载顺序从上到下
    //解决:当页面加载完成之后再获取
    // window.onload = function(){
    //  console.log(document.getElementById("username").value);
    // }
    //使用jQuery的方式获取输入框中的内容
    // jQuery(document).ready(function(){
    //  console.log(document.getElementById("username").value);
    // })

    //简写:
    // $(function(){
    //  console.log(document.getElementById("username").value);
    // })

   
    // window.onload = function(){
    //  console.log("js文档就绪函数1")
    // }
    // window.onload = function(){
    //  console.log("js文档就绪函数2")
    // }
    // $(function(){
    //  console.log("jQuery文档就绪函数1")
    // })
    // $(function(){
    //  console.log("jQuery文档就绪函数2")
    // })
</script>
<input type="text" name="username" id="username" value="hello,jQuery"/>

3.2 js对象和jQuery对象【重要】


js对象

var p = document.getElementById(“p1”); //[object HTMLParagraphElement]

jQuery对象

var $p = $(“#p1”); // [object Object]

  • js对象和jQuery对象的互转
  • 将js对象转换成jQuery对象
  • var $p = $(js对象);
  • 将jQuery对象转换成js(jQuery默认就是数组)
  • var p = jQuery对象[下标];
/**
 * js对象和jQuery对象的区别【重要】
 *    jQuery对象永远都是一个js对象数组。
 * 
 * js对象与jQuery对象的互相转换
 *    jQuery对象转换成js对象   jQuery对象[下标]
 *    js对象转换成jQuery对象   $(js对象)
 * 
 */

$(function(){
  //使用js方式获取p标签
    var p = document.getElementById("p1");
    //alert(p);     //[object HTMLParagraphElement]  js对象
    //alert(p.innerHTML);
    //alert(p.html());  //错误
    //alert($(p).html()); 正确的


    //使用jQuery方式获取p标签
    var $p = $("#p1");
    // alert($p);   //[object Object]    jQuery对象
    //alert($p.html())
    //alert($p.innerHTML);//错误
    alert($p[0].innerHTML);
})

4 jQuery选择器【重要】

4.1 基本选择器

  • 标签选择器
  • class选择器
  • id选择器
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- 引入jQuery -->
    <script src="js/jquery-3.4.1.min.js"></script>
  </head>
  <body>
    <p>这是一个p标签</p>
    <span id="s">这是一个span标签</span>
    <div class="a">这是一个div标签</div>
    
    <script>
      $(function(){
        //标签选择器
        //alert($("p").length);
        //id选择器
        //alert($("#s").length);
        //class选择器
        //alert($(".a").length);
      })
    </script>
  </body>
</html>

4.2 层次选择器

  • 后代选择器
  • parent child
  • 子代选择器
  • parent>child
  • 相邻选择器
  • prev + next
  • 兄弟选择器
  • prev ~ siblings
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- 引入jQuery -->
    <script src="js/jquery-3.4.1.min.js"></script>
  </head>
  <body>
    <span>这是div后面的span3</span>
    <span>这是div后面的span4</span>
    <div id="d1">
      <p>这是子代p标签</p>
      <div>
        <p>这是后代p标签</p>
      </div>
    </div>
    <span>这是div后面的span1</span>
    <span>这是div后面的span2</span>
    <div>
      <span>这是div后面的span3</span>
    </div>
    <script>
      //后代选择器
      //alert($("#d1 p").length);
      //子代选择器
      //alert($("#d1>p").length);
      //相邻元素选择器
      //alert($("#d1+span").html());
      //兄弟元素选择器
      //alert($("#d1~span").length);
    </script>
  </body>
</html>

4.3 过滤选择器

  • :first 过滤第一个
  • :last 过滤最后一个
  • :even 过滤偶数
  • :odd 过滤奇数
  • eq(下标) 过滤指定下标
  • :lt(下标) 过滤小于指定下标
  • :gt(下标) 过滤大于指定下标
  • :not(选择器) 排除指定的元素
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- 引入jQuery -->
    <script src="js/jquery-3.4.1.min.js"></script>
  </head>
  <body>
    <ul>
      <li>武汉1</li>
      <li>宜昌2</li>
      <li>襄阳3</li>
      <li>荆州4</li>
    </ul>
    <ul id="city">
      <li>武汉</li>
      <li>宜昌</li>
      <li id="xy">襄阳</li>
      <li>荆州</li>
    </ul>
    
    
    <script>
      //简单过滤选择器   :first  过滤第一个元素
      //alert($("#city li:first").html());
      //alert($("ul:first"));
      
      //简单过滤选择器   :last  过滤最后一个元素
      //alert($("#city li:last").html());
      
      //简单过滤选择器   :odd  过滤所有的奇数元素  下标从0开始
      //$("#city li:odd").css("backgroundColor","red");
      //简单过滤选择器   :even  过滤所有的偶数元素  下标从0开始
      //$("#city li:even").css("backgroundColor","red");
      
      //简单过滤选择器   :eq  过滤指定下标元素  下标从0开始
      //$("#city li:eq(1)").css("backgroundColor","red");

      //简单过滤选择器   :lt  过滤小于指定下标元素  下标从0开始
      //$("#city li:lt(2)").css("backgroundColor","red");
      
      //简单过滤选择器   :gt  过滤大于指定下标元素  下标从0开始
      //$("#city li:gt(2)").css("backgroundColor","red");
      
      //简单过滤选择器   :not(选择器)  过滤不是指定元素的其他元素
      $("#city li:not('#xy')").css("backgroundColor","red");
      
    </script>
    
  </body>
</html>

4.4 表单选择器

  • :input 包含表单中所有的元素(input、button、textarea、select)
  • :text 选择表单中所有的type=text元素
  • :password 选择表单中所有的type=password元素
  • :enabled 选择表单中所有的可用元素
  • :disabled 选择表单中所有的可用元素
  • :checked 选择单选和复选被选中的元素
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- 引入jQuery -->
    <script src="js/jquery-3.4.1.min.js"></script>
  </head>
  <body>
    
    <form id="myForm">
      <input type="text" name="username" disabled><br>
      <input type="password" name="password"><br>
      <input type="radio" name="sex" value="男" checked>男<br>
      <input type="radio" name="sex" value="女">女<br>
      <input type="checkbox" name="hobby" value="篮球">篮球<br>
      <input type="checkbox" name="hobby" value="足球">足球<br>
      <input type="checkbox" name="hobby" value="排球">排球<br>
      <button>表单按钮</button><br>
      文本域<textarea></textarea>
      <br>
      <select>
        <option value="武汉">武汉</option>
        <option value="上海" selected>上海</option>
        <option value="北京">北京</option>
      </select>
    </form>
    <button onclick="f1()">全选</button>
    <button onclick="f2()">全不选</button>
    
    <script>
      //:input  包含表单中所有的元素(input、button、textarea、select)
      //alert($(":input").length);
      
      //:text   选择表单中所有的type=text元素
      //alert($(":text").length);
      
      //:password   选择表单中所有的type=password元素
      //alert($(":password").length);
      
      //:radio   选择表单中所有的type=radio元素
      //alert($(":radio").length);
      
      
      //:checkbox   选择表单中所有的type=checkbox元素
      //alert($(":checkbox").length);
      
      //选择所有的checkbox。设置checked属性为true
      //$(":checkbox").attr("checked","true");
      
      //:enabled  选择表单中所有的可用元素
      //alert($(":enabled").length);
      
      //:disabled  选择表单中所有的可用元素
      //alert($(":disabled").length);
      
      //:checked  选择单选和复选被选中的元素
      //alert($(":radio:checked")[0].value);
      
      function f1(){
        $(":checkbox").prop("checked",true);
      }
      function f2(){
        $(":checkbox").prop("checked",false);
      }
      
      //:selected  选择单选和复选被选中的元素
      //alert($(":selected").val());
      
    </script>
  </body>
</html>

5 jQuery的事件

jQuery中的事件与Javascript中的事件基本一致。jQuery中的事件就是js中的事件省略on

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- 引入jQuery -->
    <script src="js/jquery-3.4.1.min.js"></script>
    
  </head>
  <body>
    <button id="btn">按钮</button>
    
    <input type="text" name="username"/>
    <input type="password" name="aaa"/>
    <select>
      <option value="武汉">武汉</option>
      <option value="上海" selected>上海</option>
      <option value="北京">北京</option>
    </select>
    <button onclick="f1()">按钮2</button>
    
    <script>
      //在js中给button绑定事件
      // var btn = document.getElementById("btn");
      // btn.onclick = function(){
      //  alert("点击事件");
      // }
      
      //在jQuery中绑定事件
      // $("#btn").click(function(){
      //  alert("点击事件");
      // })
      
      // $(":text").blur(function(){
      //  alert("失去焦点事件");
      // })
      
      // $("select").change(function(){
      //  //var value = $(":selected").val();
      //  //this是当前绑定事件的对象。是一个js对象
      //  alert("下拉框内容改变了..."+$(this).val());
      // })
      
      // $(":password").focus(function(){
      //  alert("获取焦点事件");
      // })
      
      
      /**
       * 总结:
       *    1、jQuery中的事件绑定,就是js事件绑定去掉on
       *      2、jQuery在绑定事件的时候参数为回调函数(事件触发之后执行)
       *      a、传递参数:表示设置事件(什么时候触发什么时候执行)
       *          b、不传参数:表示执行事件(立即执行)
       */
      
      function f1(){
        alert("按钮2执行了。。。。");
      }
      //立即执行事件
      $("button:eq(1)").click();
    </script>
  </body>
</html>

如果有参数,表示设置事件(什么触发事件,什么时候执行)

如果没有参数,表示触发事件,立即执行

6 jQueryDOM操作

6.1 jQuery获取节点元素值

  • jQuery 拥有可操作 HTML 元素和属性的强大方法。
  • jQuery 中非常重要的部分,就是操作 DOM 的能力。
  • jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
  • 三个简单实用的用于 DOM 操作的 jQuery 方法:
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值

6.2 jQuery操作DOM节点

用于添加新元素节点的四个 jQuery 方法:

  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容

用于删除新元素节点的两个 jQuery 方法:

  • remove() - 删除选中元素(及其子元素)

6.3 jQuery操作CSS

jQuery 拥有若干进行 CSS 操作的方法。

  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  • css() - 设置或返回样式属性

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
9天前
|
前端开发
后端返回图片二进制流,前端转base64
本文介绍了如何将后端返回的图片二进制流转换为Base64格式,以便在前端使用。通过在axios请求中设置`responseType`为`arraybuffer`,然后使用`btoa`和`Uint8Array`进行转换。
38 5
|
6天前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
28 2
|
2月前
|
前端开发 JavaScript API
解锁高效应用构建:Vuex与后端交互的前端状态同步策略,让数据流动如行云流水,紧跟前端开发的热点趋势
【8月更文挑战第27天】本文深入探讨了Vue框架下的前端状态管理库Vuex与后端服务交互时的状态同步策略。通过剖析Vuex的核心机制——状态(State)、变异(Mutation)、动作(Action)及模块(Module),文章展示了如何优雅地将后端数据加载并更新至前端状态中。特别地,借助示例代码解释了Action处理API调用、Mutation更新状态的过程,并介绍了如何通过模块化和命名空间提高状态管理的准确性和时效性。此外,还讨论了组件如何利用`mapState`和`mapActions`简化状态访问与操作的方法。遵循这些策略,开发者可以在构建复杂应用时显著提升性能与用户体验。
36 0
|
4天前
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
10 2
|
2月前
|
前端开发 JavaScript
这篇文章介绍了如何使用form表单结合Bootstrap格式将前端数据通过action属性提交到后端的servlet,包括前端表单的创建、数据的一级和二级验证,以及后端servlet的注解和参数获取。
这篇文章介绍了使用AJAX技术将前端页面中表单接收的多个参数快速便捷地传输到后端servlet的方法,并通过示例代码展示了前端JavaScript中的AJAX调用和后端servlet的接收处理。
这篇文章介绍了如何使用form表单结合Bootstrap格式将前端数据通过action属性提交到后端的servlet,包括前端表单的创建、数据的一级和二级验证,以及后端servlet的注解和参数获取。
|
2月前
|
前端开发 IDE Java
"揭秘前端转Java的秘径:SpringBoot Web极速入门,掌握分层解耦艺术,让你的后端代码飞起来,你敢来挑战吗?"
【8月更文挑战第19天】面向前端开发者介绍Spring Boot后端开发,通过简化Spring应用搭建,快速实现Web应用。本文以创建“Hello World”应用为例,展示项目基本结构与运行方式。进而深入探讨三层架构(Controller、Service、DAO)下的分层解耦概念,通过员工信息管理示例,演示各层如何协作及依赖注入的使用,以此提升代码灵活性与可维护性。
39 2
|
2月前
|
缓存 前端开发 JavaScript
高效开发现代 Web 应用:从前端到后端的最佳实践
在开发现代 Web 应用时,前端和后端技术的选择对项目的性能、可维护性和用户体验至关重要。本文将探讨如何通过现代工具和框架来优化前端和后端开发流程。我们将分析前端技术(如 React 和 Vue.js)与后端技术(如 Node.js 和 Django)的集成,并提供实际案例来展示如何实现高效开发。无论是对新手还是经验丰富的开发者,本指南都提供了宝贵的洞见和实用的技巧,以帮助提高开发效率并构建出色的 Web 应用。
|
2月前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
67 0
|
2月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
41 0
|
2月前
|
前端开发 开发者 UED
数据校验的艺术:揭秘JSF如何将前端与后端验证合二为一,打造无缝用户体验
【8月更文挑战第31天】JavaServer Faces(JSF)是构建企业级Web应用的Java规范,提供了丰富的组件和API,便于快速搭建用户界面。JSF验证框架基于JavaBean验证API(JSR 303/JSR 380),利用注解如`@NotNull`、`@Size`等在模型类上定义验证规则,结合前端的`&lt;h:inputText&gt;`和`&lt;h:message&gt;`标签展示错误信息。
27 0
下一篇
无影云桌面