博客列表 >front 22 jQuery基础(引入、$()函数、查询结果处理) (0818tue)

front 22 jQuery基础(引入、$()函数、查询结果处理) (0818tue)

老黑
老黑原创
2020年08月23日 18:19:50819浏览

主要内容:

  1. jQuery基础
  2. 三种引入方式
  3. 四个主要的$()函数:$(选择器, 上下文)、 $(js原生对象)、$(html文本)、$(callback)
  4. 查询结果处理:toArray()、map()、index()jQuery类对象

1. jQuery基础

1-1. jQuery 是什么

  • jQuery 是一个非常流行的 JavaScript 函数库。被用来调和不同浏览器的适配性。目前还有50%网站用jQuery。
  • jQuery 经常用于 DOM 查询, 常用动画, Ajax 等常用操作
  • jQuery 宗旨: 写得更少,而做得更多
  • 现在很多动画等css3也都可以实现;很多浏览器也都支持fetch、axios、promise这些新东西,Ajax也可以被非常容易地实现了。因此jQuery用得越来越少。

1-2. 引入 jQuery

  • 官网下载。下载了后直接放到对应的目录下即可,优点像echart.js,只不过应用场景不一样。
  • npm: npm install jquery
  • cdn: https://www.bootcdn.cn/jquery/。这种方式下相当于一种网络调用。不用下载。
  • npm下载的话,需要先下载node.js。
    • npm相当于js中的composer。安装了后就可以下载安装各种组件。

1-3. 引入示例

  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>Document</title>
  7. </head>
  8. <body>
  9. <h1>Hello 大家晚上吃饱了吗?</h1>
  10. <!-- ① 通过下载方式引入jquery -->
  11. <!-- <script src="lib/jquery-3.5.1.js"></script> -->
  12. <!-- ② 引入通过npm加载的jQuery -->
  13. <!-- <script src="node_modules/jquery/dist/jquery.min.js"></script> -->
  14. <!-- ③ 网络方式引入 -->
  15. <!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script> -->
  16. <!-- https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js -->
  17. <script>
  18. // 可以简化js代码,直接简洁。
  19. $("h1").css("color", "red");
  20. // document.querySelector("h1").style.color = "green";
  21. </script>
  22. </body>
  23. </html>

2. 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 src="lib/jquery-3.5.1.js"></script>
  10. <script>
  11. // 1. jQuery函数
  12. // $跟jQuery是等同的。只不过在一些不方便用$的地方,可以用jQuery。
  13. $(document.body).css("background", "wheat");
  14. jQuery(document.body).css("background", "yellow");
  15. document.body.style.backgroundColor = "lightgreen";
  16. // 2.jQuery对象
  17. // console.log($("*")); //* 代表所有元素
  18. // console.log($("*").length);
  19. // $()=>jQuery对象。在这个对象上使用[...]可将内部的jQuery对象转为原生js对象
  20. // console.log($("*")[5]); // <body>
  21. // $("*")[5] === $("*").get(5)
  22. $("*")[5].style.backgroundColor = "lightblue";
  23. $("*").get(5).style.backgroundColor = "lightcoral";
  24. // console.log($("*")[5] === $("*").get(5));
  25. // 3. jQuery中静态方法
  26. // $:函数, 函数对象
  27. // $(): jQuery对象
  28. // $.each($("*"), function (key, value) {
  29. // console.log(key, value);
  30. // });
  31. // each()此时就不是静态方法了,为什么,它在对象上调用
  32. $("*").each(function (key, value) {
  33. console.log(key, value);
  34. });
  35. </script>
  36. </body>
  37. </html>

2. $()函数

  • $(选择器, 上下文)
  • $(js对象)
  • $(html文本)
  • $(callback)
  • 详解函数
  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. <div id="first">
  10. <li>item1</li>
  11. <li>item2</li>
  12. <li>item3</li>
  13. </div>
  14. <hr />
  15. <div id="second">
  16. <li>item1</li>
  17. <li>item2</li>
  18. <li>item3</li>
  19. </div>
  20. <script src="lib/jquery-3.5.1.js"></script>
  21. <script>
  22. // $(): 工厂函数, jquery(), $ ---> jQuery
  23. // 语法: $( selector, context ), $(选择器, 上下文)
  24. // 1. $(选择器, 上下文)
  25. // 原生
  26. document.querySelectorAll("li").forEach(function (item) {
  27. item.style.color = "red";
  28. });
  29. // jquery
  30. // $("li").css("color", "green");
  31. // $()的第二参数, 上下文,例如只更新第一组列表的颜色
  32. $("li", "#first").css("color", "green");
  33. $("li", "#second").css("color", "blue");
  34. // 2. $(js原生对象)
  35. // 将js对象包装成一个jquery对象,从而可以直接调用jQuery中的方法
  36. var lis = document.querySelectorAll("#second li");
  37. console.log(lis);
  38. lis.forEach(function (item) {
  39. item.style.background = "yellow";
  40. });
  41. // 想使用jQuery中的css()方法,必须将lis包装/转换成一个jQuery对象
  42. console.log($(lis));
  43. $(lis).css("background-color", "cyan");
  44. // 3. $(html文本)
  45. // var h2 = document.createElement("h2");
  46. // h2.innerText = "Hello World";
  47. // document.body.appendChild(h2);
  48. $("<h2>Hello World</h2>").insertBefore("#first");
  49. // 4. $(callback): 当html文档加载完成之后立即调用这个函数
  50. $(function () {
  51. $(document.body).css({
  52. background: "wheat",
  53. "font-size": "20px",
  54. });
  55. });
  56. </script>
  57. </body>
  58. </html>

3. 查询结果的处理

  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. <ul>
  10. <li>item1</li>
  11. <li>item2</li>
  12. <li>item3</li>
  13. <li>item4</li>
  14. <li>item5</li>
  15. </ul>
  16. <script src="lib/jquery-3.5.1.js"></script>
  17. <script>
  18. //1.toArray(): 将结果转为真正数组
  19. // console.log(document.getElementsByTagName("li"));
  20. // document.getElementsByTagName("li").forEach(function (item) {
  21. // //...
  22. // });
  23. // 因为不是一个数组,上面的forEach就会报错。需要下面转化下,然后才可以。
  24. var lis = $(document.getElementsByTagName("li")).toArray();
  25. // var lis = Array.from(document.getElementsByTagName("li")); //这种方式也可以
  26. // console.log(lis);
  27. lis.forEach(function (item) {
  28. item.style.color = "red";
  29. });
  30. // 2. map(): 有返回值(map这块原生和通过jQuery封装的区别已经不大了)
  31. var arr = [1, 2, 3, 4];
  32. var res = arr.map(function (item) {
  33. return item * 2;
  34. });
  35. // console.log(res);
  36. var res2 = $.map(arr, function (item) {
  37. return item * 2;
  38. });
  39. // console.log(res2);
  40. // 3. index(): 返回jQuery集合中的元素的索引
  41. // jqueryc对象是一个类数组:具有从0开始的递增的正整数索引,并且还有一个length属性
  42. var obj = {
  43. "0": "a",
  44. "1": "b",
  45. "2": "c",
  46. "3": "d",
  47. length: 4,
  48. };
  49. // obj 满足类数组特征,所以它就是一个类数组(类似一个数组)
  50. // console.log($("li"));
  51. // jquery中的集合自带循环的,这里是给集合中每个li添加点击事件
  52. $("li").click(function () {
  53. // console.log($(this).index() + 1);
  54. console.log("点击了第 %s 个元素", $(this).index() + 1);
  55. });
  56. </script>
  57. </body>
  58. </html>

4. 作业(操练了下,挺好的一个方向,不知道还有其他那些牛的玩法)

  1. $()四种应用场景
  2. $与$()的区别 ,实例演示
  3. attr()的常用操作,实例演示
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议