Blogger Information
Blog 57
fans 3
comment 0
visits 60521
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS基础-jQuery的引入/$()的四大功能/jQuery对象的处理
岂几岂几
Original
1884 people have browsed it

jQuery的使用

1. jQuery的引入方式

1.1 CDN静态资源库引用

  1. <!-- CDN方式引用 -->
  2. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

1.2 本地引用

  • 把jQuery下载到本地, 同样以引入外部js文件的方式引入.
  1. <script scr="jquery-3.5.1.min.js"></script>

2. jQury的工厂函数$()

  • $(selector)的返回值为一个jQuery对象.
  • 使用语法: $(selector).operator() , 即: $(选择器).操作函数() .
  • jQuery是自动循环, 所以jQuery很少循环.
  • 类似给 console.log 函数起别名 cl , $jquery 函数的一个别名.

  • 工厂函数$()的四大功能

      1. 选择器功能
      • 工厂函数$()的选择器功能, 能很好的体现jQuery的特点: 写得少, 做得多.
  1. - `$(选择器)` 的返回值是**jQuery对象**.
    1. 根据HTML元素创建jQuery对象
    • $(HTML元素对象) : 把HTML元素对象封装成jQuery对象, 然后就能调用jQuery对象提供的方便的方法进行操作.
    1. 根据带有HTML标签的文本创建jQuery对象.
    • $(htmlStr) : 把带有HTML标签的文本解析成html元素对象, 再将其封装成jQuery对象.
    1. $(回调函数) : 当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. <title>jQuery工厂函数$()的四大功能</title>
  7. <!-- 引入本地jQuery文件 -->
  8. <script src="jquery-3.5.1.min.js"></script>
  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. </body>
  22. <script>
  23. // jQuery工厂函数的四大功能
  24. // 1. 选择器功能
  25. /* 把第一个列表的字体颜色变成橙色 */
  26. /* 使用JS原生操作 */
  27. document.querySelectorAll('#first > li').forEach(function(ele) {
  28. ele.style.color = 'orange';
  29. });
  30. /* 使用jQuery实现 */
  31. $('#first > li').css('color', 'orange');
  32. // 2. 创建jQuery对象
  33. /* 把第二个列表的第二个列表项的背景色设置为黄色 */
  34. /* 用js原生操作获取第二个列表的第二个li元素 */
  35. var li2 = document.querySelector('#second > li:nth-of-type(2)');
  36. /* 把li元素封装成jQuery对象, 再调用css()方法设置背景色 */
  37. $(li2).css('background-color', 'yellow');
  38. // 3. 把带有HTML标签的文本解析成html元素对象, 再将其封装成jQuery对象.
  39. /* 把htmlStr字符串解析成HTML元素对象, 并在浏览器中显示 */
  40. var htmlStr = '<span>hello jQuery!</span>';
  41. $(htmlStr).css('color', 'red').appendTo($('body'));
  42. // 4. $(回调函数): 当HTML文档结构加载完成后, 会自动加载这个回调函数.
  43. /* 弹出"页面加载完毕"的提示框 */
  44. $(function() {
  45. alert('页面加载完毕');
  46. });
  47. </script>
  48. </html>

3. jQuery对象

  • jQuery对象可以封装1个或多个js对象, 包括但不限于HTML元素对象.

  • 可以使用类似访问数组元素的方式访问jQuery对象封装的元素. 如: $('div')[0] .

  • 也可以调用jQuery对象的get()方法来获取其封装的元素: $('div').get(1) .

  • length 属性, 值是jQuery对象封装的元素个数.

  • jQuery对象提供了很多方便操作HTML元素的各种属性的方法.

  • jQuery对象没有 forEach() 方法, 但提供了 $.each() 静态方法遍历其中的元素.

    • $.each() 方法的使用方法:
  1. $.each(jQuery对象, function(当前元素索引, 当前元素) {
  2. // do something...
  3. });
  • $.each() 也可以当做非静态方法调用:
  1. jQuery对象.each(function(当前元素索引, 当前元素) {
  2. // do something...
  3. });
  • 调用jQuery对象的 toArray() 方法, 可以将其封装的所有元素转换成真正的js对象数组, 然后就能使用 forEach() 方法遍历其元素了.
  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>jQuery对象</title>
  7. <!-- CDN方式引用, 即内容分发方式 -->
  8. <!-- BootCDN或者又拍云的CDN的速度都可以 -->
  9. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  10. <!-- 本地引用 -->
  11. </head>
  12. <body>
  13. <ul id="first">
  14. <li>item1</li>
  15. <li>item2</li>
  16. <li>item3</li>
  17. </ul>
  18. <ul id="second">
  19. <li>item1</li>
  20. <li>item2</li>
  21. <li>item3</li>
  22. </ul>
  23. </body>
  24. <script>
  25. // console.log函数起别名
  26. var cl = console.log.bind(console);
  27. // 封装所有元素的jQuery对象
  28. var $all = $('*');
  29. cl($all);
  30. // length属性返回封装的元素个数
  31. cl($all.length);
  32. // 获取封装的元素
  33. /* 方法1: 类似数组的array[index]方式 */
  34. cl($all[0]);
  35. /* 方法2: 调用get(index)方法 */
  36. cl($all.get(1));
  37. // 调用toArray()方法转成js数组
  38. cl($all.toArray());
  39. // 遍历封装的元素
  40. /* 方法1: $.each()静态方法: */
  41. $.each($all, function(index, ele) {
  42. cl('第' + (index + 1) + '个元素是: ' + ele.nodeName);
  43. })
  44. /* 方法2: 动态调用$.each()方法: */
  45. $all.each(function(index, ele) {
  46. cl('第' + (index + 1) + '个元素是: ' + ele.nodeName);
  47. });
  48. /* 方法3: 用toArray()方法转成js数组, 然后用forEach遍历 */
  49. $all.toArray().forEach(function(ele, index) {
  50. cl('第' + (index + 1) + '个元素是: ' + ele.nodeName);
  51. });
  52. </script>
  53. </html>

3. jQuery查询结果的处理

    1. 使用 toArray() 方法转成js数组来处理查询结果中的对象.
    1. 使用 $.each() / $(selector).each() 来处理查询结果中的对象.
    1. 使用 $.map(jQuery查询结果, function(当前元素, 当前元素索引) {...}) 来遍历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>jq查询结果的处理</title>
  7. <!-- CDN方式引用, 即内容分发方式 -->
  8. <!-- BootCDN或者又拍云的CDN的速度都可以 -->
  9. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  10. <!-- 本地引用 -->
  11. </head>
  12. <body>
  13. <ul id="first">
  14. <li>item1</li>
  15. <li>item2</li>
  16. <li>item3</li>
  17. <li>item4</li>
  18. <li>item5</li>
  19. </ul>
  20. <script>
  21. var cl = console.log.bind(console);
  22. // 1. 使用 `toArray()` 方法转成js数组来处理查询结果中的对象.
  23. /* 见上一节实例, 略 */
  24. // 2. 使用 `$.each()` / `$(selector).each()` 来处理查询结果中的对象.
  25. /* 见上一节实例, 略 */
  26. // 3. 使用$.map()遍历并处理jQuery查询结果
  27. var $lis = $('li');
  28. /* 返回偶数索引的元素 */
  29. var array = $.map(lis, function(ele, index) {
  30. if (index % 2 == 0) {
  31. return ele;
  32. }
  33. });
  34. /* 背景色改成橙色 */
  35. $(array).css('background-color', 'orange');
  36. // 4. 为jQuery查询结果绑定事件处理脚本.
  37. lis.click(function(event) {
  38. // index()使用方式1:
  39. // cl('点击了第' + (lis.index(event.target) + 1) + "个元素");
  40. // index()使用方式2:
  41. cl('点击了第' + (event.target.index() + 1) + "个元素");
  42. });
  43. </script>
  44. </body>
  45. </html>

学习心得

  • jQuery是JS的一个类库, 是为了简化JS操作出现的. jQuery能做的, JS都能做.

  • jQuery的特点: 写得少, 做得多.

  • jQuery的方法基本都是自动循环的, 所以jQuery很少循环.

  • 一个奇怪的情况, 如果以CDN的方式引入jQuery, cl($('*')) 显示的是 jQuery.fn.init[...] , 即, $(selector)的返回结果是jQuery对象; 而如果引入本地的jQuery文件, 上述表达式显示的结果是 S.fn.init[...] . 这两者有什么区别?

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:注意, 10日前完成, 三阶段可正常提交
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