Blogger Information
Blog 43
fans 1
comment 0
visits 33945
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
jQuery 工厂函数与查询结果的处理方式
蔚蓝世纪
Original
791 people have browsed it

一、什么是jQuery

jQuery 是一个 JavaScript 的函数库。jQuery 经常用于 DOM 查询, 常用动画, Ajax 等常用操作。

二、配置jQuery环境

我们可以通过以下这种方式加载 CDN jQuery 核心文件。

  1. <head>
  2. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  3. </head>

三、jQuery的基本语法

  1. $(selector).action()//英文版
  2. $(选择器).操作();//中文版
  1. 美元符号定义 jQuery
  2. 选择符(selector)“查询”和“查找” HTML 元素
  3. jQuery action() 执行对元素的操作

四、jQuery 工厂函数

1.什么是jQuery 工厂函数

所谓工厂函数,顾名思义,就好比一个工厂一样,可以批量制造某种类型的东西,通过该方法可大批量的创建对象。
例如,我们可以用工厂函数来批量创建学生信息:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>什么是工厂函数</title>
  7. </head>
  8. <body>
  9. <script>
  10. function student(name, sex) {
  11. var obj = new Object();
  12. obj.name = name;
  13. obj.sex = sex;
  14. obj.saysex = function () {
  15. alert("我的性别是${this.sex}");
  16. };
  17. return obj;
  18. }
  19. var no1 = student("王小丁", "男");
  20. console.log(no1.name);
  21. // no1.saysex();
  22. var no2 = student("李晓静", "女");
  23. console.log(no2.name);
  24. // no2.saysex();
  25. var no3 = student("周一楠", "男");
  26. console.log(no3.name);
  27. // no3.saysex();
  28. var no4 = student("汪玉敏", "女");
  29. console.log(no4.name);
  30. // no4.saysex();
  31. var no5 = student("刘焕文", "男");
  32. console.log(no5.name);
  33. // no5.saysex();
  34. </script>
  35. </body>
  36. </html>

2.jQuery工厂函数的功能

通过 jQuery工厂函数,我们可以选取查询 HTML 元素,并对它们执行“操作”(actions)。

  1. 1.$(选择器,上下文):返回jQuery对象
  2. 2.$(js对象):返回一个jQuery对象,将js对象包装成jQuery对象
  3. 3.$(html文本):将html文本包装成一个jQuery对象并返回
  4. 4.$(callback):当html文档结构加载完成后就会立即执行这个回调函数

代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <!-- CDN 方式加载jquery -->
  7. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  8. <title>jquery工厂函数的功能</title>
  9. </head>
  10. <body>
  11. <ul id="first">
  12. <li>item1</li>
  13. <li>item2</li>
  14. <li>item3</li>
  15. </ul>
  16. <ul id="second">
  17. <li>item1</li>
  18. <li>item2</li>
  19. <li>item3</li>
  20. </ul>
  21. <h1 id="01">获取父级HTML元素</h1>
  22. <h2 id="02">我们一起去郊游吧!</h2>
  23. <h3 id="03">你们开心吗?</h3>
  24. <h4 id="04">他们在干什么呢?</h4>
  25. <p id="demo"></p>
  26. </body>
  27. <script>
  28. //$():工厂函数是自动循环的
  29. //$():工厂函数的功能
  30. // 1.$(选择器,上下文):返回jQuery对象
  31. //javascrip原生操作
  32. document.querySelectorAll("li").forEach(function (item) {
  33. item.style.color = "red";
  34. });
  35. //jQuery操作
  36. $("li").css("color", "green");
  37. // $("li", "#first").css("color", "blue");不要用
  38. $("#first li").css("color", "skyblue");
  39. // 2.$(js对象),返回一个jQuery对象,将js对象包装成jQuery对象
  40. var lis = document.querySelectorAll("#second li");
  41. lis.forEach(function (item) {
  42. item.style.backgroundColor = "yellow";
  43. });
  44. //lis === jQuery对象
  45. $(lis).css("background-color", "cyan");
  46. // 3.$(html文本),将html文本包装成一个jQuery对象并返回
  47. //html文本:hello不是html文本,<p>hello</p>带标签的才是html文本
  48. $("<h3>Laravel开发者</h3>").insertAfter("#second");
  49. // 4.$(callback):当html文档结构加载完成后就会立即执行这个回调
  50. $(function () {
  51. //$(document.body).css( "font-size", "18px").css("background-color", "wheat");链式写法
  52. //可以简写为下面这种方式
  53. $(document.body).css({
  54. "font-size": "18px",
  55. "background-color": "wheat",
  56. });
  57. });
  58. $(document).ready(function () {
  59. var myParent = $("#02").parent();
  60. $("#demo").text(myParent.prop("nodeName"));
  61. });
  62. $("<h3>Laravel开发</h3>").insertBefore("#01");
  63. </script>
  64. </html>

输出效果:

五、jQuery查询结果的处理方式

查询就是筛选的意思,根据某个字或词语,在数据库中进行有条件的查询,然后将查询到的结果集返回给客户端,这样在客户端上就可以将查询到的结果以各种方式呈现出来。

  1. toArray():将查询结果转为真正的数组.
  2. $.each():回调的参数顺序与forEach不一样.
  3. $.map():必须要有返回值,回调参数的参数和$.each()的回调参数的参数完全相反.
  4. index():返回jQuery查询集合中的索引.

代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  7. <title>jQuery查询结果的处理方式</title>
  8. </head>
  9. <body>
  10. <ul>
  11. <li>item1</li>
  12. <li>item2</li>
  13. <li>itme3</li>
  14. <li>item4</li>
  15. <li>item5</li>
  16. </ul>
  17. <script>
  18. // 1.toArray():将查询结果转为真正的数组
  19. var lis = $("ul > li");
  20. console.log(lis);
  21. console.log(lis.get(3));
  22. for (var i = 0; i < lis.length; i++) {
  23. //原生方式
  24. lis.get(i).style.color = "red";
  25. }
  26. lis.toArray().forEach(function (item, index) {
  27. if (index >= 2) console.log("元素" + index + ":" + item);
  28. });
  29. // 2. $.each(): 回调的参数顺序与forEach不一样,$().each((callback))
  30. lis.each(function (index, value) {
  31. //原生方式
  32. this.style.color = "green";
  33. //jQuery方式
  34. $(this).css("color", "blue");
  35. });
  36. // 3.$.map():必须要有返回值,回调参数的参数和$.each()的回调参数的参数完全相反
  37. var arr = $.map(lis, function (value, index) {
  38. if (index % 2) return value;
  39. });
  40. console.log(arr);
  41. console.log($(arr));
  42. $(arr).css("color", "red");
  43. // 4.index():返回jQuery查询集合中的索引
  44. // jQuery对象是一个类数组,具有从0开始递增的正整数索引,并有一个length属性
  45. console.log(lis);
  46. lis.click(function () {
  47. console.log("点击了第:", $(this).index() + 1, "个<li>");
  48. });
  49. </script>
  50. </body>
  51. </html>

输出效果:

总结:

1.jQuery可以极大地简化 JavaScript 编程。
2.jQuery可以更快速获取文档元素。
3.jQuery中内置了一系列的动画效果,可以开发出非常漂亮的网页。
4.jQuery可以修改网页中的内容,比如更改网页的文本、插入或者翻转网页图像。
5.jQuery简化了原本使用JavaScript代码需要处理的方式。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:jquery的对象快速迭代处理效率非常高
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post