• 【JavaWeb - 网页编程】四 jQuery 操作



    第四章 jQuery 操作

    创作日期:2021-12-22


    4.1 jQuery 的属性操作

    • html() 设置和获取起始标签和结束标签中的内容
    • text() 设置和获取起始标签和结束标签中的文本
    • val() 设置和获取表单项的 value 属性值
    • attr() 设置和获取属性的值
    • prop() 设置和获取属性的值
    1. <body>
    2. <div>我是div标签<span>我是div中的span标签span>div>
    3. 姓名:<input type="text" value="请输入...">
    4. <div style="border: red 2px solid">divReddiv>
    5. <div id="002" name="div02">divdiv>
    6. body>
    1. /* JS-jQuery */
    2. $(document).ready(function(){
    3. alert($("div").html()); //我是div标签我是div中的span标签
    4. alert($("div").text()); //我是div标签我是div中的span标签
    5. alert($("input").val()); //请输入...
    6. alert($("div").eq(1).attr("style")); //border: red 2px solid
    7. alert($("#002").attr("name")); //div02
    8. });

    4.2 DOM 的增删改

    4.2.1 内部插入

    • a.appendTo(b)   把 a 标签插入到 b 标签中元素的末尾,成为最后一个子元素

    • a.prependTo(b)  把 a 标签插入到 b 标签中元素的前面,成为第一个子元素

    1. <body>
    2. <div>divdiv>
    3. body>
    1. /* JS-jQuery */
    2. $(document).ready(function(){
    3. $("

      h1

      "
      ).appendTo("div");
    4. $("

      h2

      "
      ).prependTo("div");
    5. });

    4.2.2 外部插入

    • a.insertAfter(b)   将 b 标签插入 a 标签之后
    • a.insertBefore(b)   将 b 标签插入 a 标签之前
    1. /* JS-jQuery */
    2. $(document).ready(function(){
    3. $("

      h1

      "
      ).insertAfter("div");
    4. $("

      h2

      "
      ).insertBefore("div");
    5. });

    4.2.3 替换

    • a.replaceWith(b) 将 a 标签换成 b 标签
    • a.replaceAll(b) 将 a 标签换成 b 标签
    1. /* JS-jQuery */
    2. $(document).ready(function(){
    3. $("div").replaceWith("

      h1

      "
      );
    4. $("

      h1

      "
      ).replaceAll("div");
    5. });

    4.2.4 删除

    • a.remove() 删除 a 标签
    • a.empty() 清空 a 标签内的内容
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>html1title>
    6. <script src="https://code.jquery.com/jquery-1.7.2.min.js">script>
    7. <script type="text/javascript" src="js/hello.js">script>
    8. <link rel="stylesheet" type="text/css" href="css/hello.css">
    9. head>
    10. <body>
    11. <div id="div1">div1div>
    12. <div class="div2">div2div>
    13. body>
    14. html>
    1. /* JS-jQuery */
    2. $(document).ready(function(){
    3. $("#div1").remove();
    4. $(".div2").empty();
    5. });

    4.3 jQuery 操作练习

    4.3.1 从左到右,从右到左

    1. <body>
    2. <div id="left">
    3. <select multiple="multiple" id="sel01">
    4. <option value="opt01">选项1option>
    5. <option value="opt01">选项2option>
    6. <option value="opt01">选项3option>
    7. <option value="opt01">选项4option>
    8. <option value="opt01">选项5option>
    9. <option value="opt01">选项6option>
    10. select>
    11. <button>选中添加到右边button>
    12. <button>全部添加到右边button>
    13. div>
    14. <div id="right">
    15. <select multiple="multiple" id="sel02">
    16. select>
    17. <button>选中添加到左边button>
    18. <button>全部添加到左边button>
    19. div>
    20. body>
    1. /* CSS */
    2. select{
    3. width: 100px;
    4. height: 140px;
    5. }
    6. div{
    7. width: 130px;
    8. float: left;
    9. text-align: center;
    10. }
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. //第一个按钮 选中添加到右边
    4. $("button:eq(0)").click(function () {
    5. $("#sel01 option:selected").appendTo($("#sel02"));
    6. });
    7. //第二个按钮 全部添加到右边
    8. $("button:eq(1)").click(function () {
    9. $("#sel01 option").appendTo($("#sel02"));
    10. });
    11. //第三个按钮 选中添加到左边
    12. $("button:eq(2)").click(function () {
    13. $("#sel02 option:selected").appendTo($("#sel01"));
    14. });
    15. //第四个按钮 全部添加到右边
    16. $("button:eq(3)").click(function () {
    17. $("#sel02 option").appendTo($("#sel01"));
    18. });
    19. });

    4.3.2 表格的动态添加与删除行记录

    1. <body>
    2. <table id="employeeTable" align="center" border="1" width="200" height="200" cellspacing="0">
    3. <tr>
    4. <th>Nameth>
    5. <th>Emailth>
    6. <th>Salaryth>
    7. <th>Actionth>
    8. tr>
    9. <tr>
    10. <td>Tomtd>
    11. <td>tom@tom.comtd>
    12. <td>5000td>
    13. <td><a href="deleteEmp?id=001">Deletea>td>
    14. tr>
    15. <tr>
    16. <td>Jerrytd>
    17. <td>jerry@jerry.comtd>
    18. <td>8000td>
    19. <td><a href="deleteEmp?id=002">Deletea>td>
    20. tr>
    21. <tr>
    22. <td>Bobtd>
    23. <td>bob@bob.comtd>
    24. <td>2000td>
    25. <td><a href="deleteEmp?id=003">Deletea>td>
    26. tr>
    27. table>
    28. <div id="formDiv" align="center" >
    29. <h4>添加新员工h4>
    30. <table >
    31. <tr>
    32. <td class="word">name:td>
    33. <td class="inp">
    34. <input type="text" name="empName" id="empName">
    35. td>
    36. tr>
    37. <tr>
    38. <td class="word">email:td>
    39. <td class="inp">
    40. <input type="text" name="email" id="email">
    41. td>
    42. tr>
    43. <tr>
    44. <td class="word">salary:td>
    45. <td class="inp">
    46. <input type="text" name="salary" id="salary">
    47. td>
    48. tr>
    49. <tr>
    50. <td colspan="2" align="center">
    51. <button id="addEmpButton" value="abc">
    52. Submit
    53. button>
    54. td>
    55. tr>
    56. table>
    57. div>
    58. body>
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. //创建一个删除复用函数
    4. var delFun = function (){
    5. //this 表示当前调用函数的对象
    6. var $reObj = $(this).parent().parent();
    7. var name = $reObj.find("td:first").text();
    8. if ( confirm("你确定要删除"+ name +"吗?")){
    9. $reObj.remove();
    10. }
    11. //返回 false 页面不会进行跳转
    12. return false;
    13. }
    14. //给按钮绑定单击事件
    15. $("#addEmpButton").click(function (){
    16. //获取输入框输入的姓名 邮箱 和 薪资
    17. var newName = $("#empName").val();
    18. var newEmail = $("#email").val();
    19. var newSalary = $("#salary").val();
    20. //创建一个行标签对象添加到显示数据的表格中
    21. var $trObj = $("\n" +
    22. " "+newName+"\n" +
    23. " "+newEmail+"\n" +
    24. " "+newSalary+"\n" +
    25. " Delete\n" +
    26. " ");
    27. //添加到显示数据的表格中
    28. $trObj.appendTo($("#employeeTable"));
    29. $trObj.find("a").click(delFun);
    30. });
    31. //给 a 标签绑定单击事件
    32. $("a").click(delFun);
    33. });

    4.4 CSS 样式操作

    • addClass() 添加样式
    • removeClass() 删除样式
    • toggleClass() 有就删除,没有就添加样式
    • offset() 获取和设置元素的坐标
    1. <body>
    2. <table align="center">
    3. <tr>
    4. <td>
    5. <div class="border">div>
    6. td>
    7. <td>
    8. <div class="btn">
    9. <input type="button" value="addClass()" id="btn01">
    10. <input type="button" value="removeClass()" id="btn02">
    11. <input type="button" value="toggleClass()" id="btn03">
    12. <input type="button" value="offset()" id="btn04">
    13. div>
    14. td>
    15. tr>
    16. table>
    17. body>
    1. /* CSS */
    2. div{
    3. width: 100px;
    4. height: 260px;
    5. }
    6. div.whiteborder{
    7. border: 2px white solid;
    8. }
    9. div.redDiv{
    10. background-color: red;
    11. }
    12. div.blueBorder{
    13. border: 5px blue solid;
    14. }
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. var $div = $("div:first");
    4. //添加样式/一次添加多个样式
    5. $("#btn01").click(function () {
    6. $div.addClass("redDiv blueBorder");
    7. });
    8. //删除样式/一次删除多个样式
    9. $("#btn02").click(function () {
    10. $div.removeClass("redDiv blueBorder");
    11. });
    12. //有就删除,没有就添加样式
    13. $("#btn03").click(function () {
    14. $div.toggleClass("redDiv blueBorder");
    15. });
    16. //offset() 获取和设置元素的坐标
    17. $("#btn04").click(function () {
    18. var offset = $div.offset();
    19. console.log(offset);
    20. });
    21. //offset() 设置元素的坐标
    22. $("#btn04").click(function () {
    23. $div.offset(
    24. {
    25. top:100,
    26. left:100
    27. }
    28. );
    29. });
    30. });

    4.5 jQuery 动画

    • 基本动画
      • show() 显示元素
      • hide() 隐藏元素
      • toggle() 元素未显示则进行显示,显示则进行隐藏
    • 淡入淡出动画
      • fadeIn() 淡入
      • fadeOut() 淡出
      • fadeTo() 在指定时长内将透明度修改到指定的值
      • fadeToggle() 淡入/淡出 切换
    1. <body>
    2. <img src="photo/JavaWeb.jpeg" >
    3. <button id="btn01">show()button>
    4. <button id="btn02">hide()button>
    5. <button id="btn03">toggle()button>
    6. body>
    1. /* CSS */
    2. img{
    3. width: 500px;
    4. height: 500px;
    5. }
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. var $img = $("img");
    4. //显示
    5. $("#btn01").click(function () {
    6. $img.show(1000,function () {
    7. alert("show动画完成");
    8. });
    9. });
    10. //隐藏
    11. $("#btn02").click(function () {
    12. $img.hide(1000,function () {
    13. alert("hide动画完成");
    14. });
    15. });
    16. //隐藏就显示,显示就隐藏
    17. $("#btn03").click(function () {
    18. $img.toggle(1000,function () {
    19. alert("toggle动画完成");
    20. });
    21. });
    22. //淡入
    23. $("#btn04").click(function () {
    24. $img.fadeIn(3000,function () {
    25. alert("fadeIn动画完成");
    26. });
    27. });
    28. //淡出
    29. $("#btn05").click(function () {
    30. $img.fadeOut(3000,function () {
    31. alert("fadeOut动画完成");
    32. });
    33. });
    34. //在指定时长内将透明度修改到指定的值
    35. $("#btn06").click(function () {
    36. $img.fadeTo(3000,0.5,function () {
    37. alert("fadeTo动画完成");
    38. });
    39. });
    40. //淡入/淡出 切换
    41. $("#btn07").click(function () {
    42. $img.fadeToggle(3000,function () {
    43. alert("fadeToggle动画完成");
    44. });
    45. });
    46. });

    4.6 jQuery 事件操作

    4.6.1 $(document).ready(function () {} 与 window.onload = function(){} 的区别

    • 触发时间:
      • jQuery 在浏览器解析完标签,创建好 DOM 对象之后执行
      • 原生 js 在浏览器解析完标签,创建好 DOM 对象,加载完成标签内容之后执行

    4.6.2 jQuery 中其他的事件处理方法

    • click() 绑定单击事件与触发单击事件
    • mouseover() 鼠标移入事件
    • mouseout() 鼠标移出事件
    • bind() 一次性可以绑定一个或多个事件
    • one() 一次性可以绑定一个或多个事件,但每次事件只能响应一次
    • unbind() 解除事件的绑定 可一次解除多个
    1. <body>
    2. <div id="panel" align="center">
    3. <h5 class="head">什么是jQuery?h5>
    4. <div class="content">
    5. jQuery是一个优秀的JavaScript库
    6. div><br>
    7. <button>按钮button>
    8. div>
    9. body>
    1. /* CSS */
    2. #panel {
    3. margin: auto;
    4. width: 400px;
    5. height: 200px;
    6. border: blue 1px solid;
    7. }
    8. div.red{
    9. background-color: red;
    10. }
    11. .content {
    12. display: none;
    13. }
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. //click 单击事件
    4. $("h5").click(function () { //click绑定事件
    5. $(".content").show();
    6. });
    7. $("button").click(function () {
    8. $("h5").click(); //click触发事件
    9. });
    10. //mouseover 鼠标移入事件
    11. $("div:first").mouseover(function () {
    12. $("div:first").addClass("red");
    13. });
    14. //mouseout 鼠标移入事件
    15. $("div:first").mouseout(function () {
    16. $("div:first").removeClass("red");
    17. });
    18. //bind 一次性可以绑定一个或多个事件
    19. $("button").bind("click mouseover mouseout",function () {
    20. alert("禁止操作");
    21. });
    22. //one 一次性可以绑定一个或多个事件,但每次事件只能响应一次
    23. $("button").one("click mouseover mouseout",function () {
    24. alert("禁止操作");
    25. });
    26. //unbind 解除事件的绑定 可一次解除多个
    27. $("div:first").unbind("mouseover mouseout");
    28. });

    4.6.3 事件的冒泡

            事件的冒泡是指,父子元素同时监听同一个事件,当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去响应。在事件函数体内,return false;可以组织事件的冒泡传递

    1. <body>
    2. <div id="div01">
    3. 我是div(父)<span> 我是span(子)span>
    4. div>
    5. body>
    1. /* JS-jQuery */
    2. $(document).ready(function () {
    3. $("#div01").click(function () {
    4. alert("我是div(父)");
    5. });
    6. $("span").click(function () {
    7. alert("我是span(子)");
    8. return false;
    9. });
    10. });

    4.6.4 javaScript 事件对象

    事件对象,是封装有触发的事件信息的一个 javaScript  对象

    1. //jQuery 代码获取事件对象
    2. $(document).ready(function () {
    3. $("#div01").click(function (even) {
    4. console.log(even);
    5. });
    6. });
    1. // 当使用 bind 方法同时绑定多个事件时,获取获取事件对象来决定执行命令
    2. /* JS-jQuery */
    3. $(document).ready(function () {
    4. //bind 一次性可以绑定一个或多个事件
    5. $("#panel").bind("click mouseover mouseout",function (even) {
    6. if(even.type == "mouseover"){
    7. $("#panel").addClass("red");
    8. }else if(even.type == "mouseout"){
    9. $("#panel").removeClass("red");
    10. }
    11. });
    12. });

    上一节:

    下一节:

  • 相关阅读:
    HTML+CSS+JS静态网页设计【二十四节气】期末课程大作业
    面向对象基础
    ClickHouse(17)ClickHouse集成JDBC表引擎详细解析
    软件测试的一些心得和建议
    【论文笔记】Language Models are Few-Shot Learners
    专利申请流程细节问答(Q & A)
    spring-2.5.6升级为spring-4.3.13过程记录
    Creo 9.0 中几何对象的选取方法
    Java处理Excel:从POI到SPL
    【电源专题】LDO基础——热性能1
  • 原文地址:https://blog.csdn.net/woailuo8214/article/details/125868200