Blogger Information
Blog 60
fans 5
comment 3
visits 65307
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JQ工厂函数及其对HTML元素的属性操作
longlong
Original
657 people have browsed it

1. 工厂函数$()的四种应用场景

  • $(选择器,上下文):主要用于获取页面元素

  • $(JS原生对象):将JS原生对象转换为JQ对象

  • $(callback):当html文档加载完成后立即执行这个回调函数

  • $(html文档):生成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>$()应用场景</title>
  7. </head>
  8. <body>
  9. <table border="1">
  10. <tr class="first">
  11. <td>td1</td>
  12. <td>td2</td>
  13. <td>td3</td>
  14. <td>td4</td>
  15. </tr>
  16. <tr class="second">
  17. <td>td1</td>
  18. <td>td2</td>
  19. <td>td3</td>
  20. <td>td4</td>
  21. </tr>
  22. </table>
  23. <script src="./jquery/jquery-3.5.1.min.js"></script>
  24. <script>
  25. // 1. $(选择器,上下文)
  26. // 1.1 将所有的单元格中文本颜色变红
  27. $('td').css('color', 'red');
  28. // 1.2 将第一行的单元格字体增大
  29. $('td', '.first').css('font-size', '1.5rem');
  30. // 2. $(html文档)
  31. $('<h2>我的表格</h2>').insertBefore('table');
  32. $('<p>我的文档</p>').appendTo('body');
  33. // 3. $(原生JS对象)
  34. let jsObj = document.querySelectorAll('.second td');
  35. $(jsObj).css({
  36. 'color': 'blue',
  37. 'font-size': '2rem',
  38. });
  39. // 4. $(callback)
  40. $(function () {
  41. $('<p>加载完成1</p>').appendTo('body');
  42. });
  43. // 简化了其本身的ready方法
  44. $('document').ready(function () {
  45. $('<p>加载完成2</p>').appendTo('body');
  46. });
  47. </script>
  48. </body>
  49. </html>

2. $与$()的区别

  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. <button>点击获取各个名字的索引</button>
  10. <p>mike的名字索引是:<span></span></p>
  11. <p>alice的名字索引是:<span></span></p>
  12. <p>tom的名字索引是:<span></span></p>
  13. <p>peter的名字索引是:<span></span></p>
  14. <script src="./jquery/jquery-3.5.1.min.js"></script>
  15. <script>
  16. // $:它是一个函数,也是函数对象,既然是对象,它也有自己的方法,比如:$.each() 、 $.inArray() ...
  17. // $():它是通过$函数生成的jQuery对象,$()就相当于jQuery()
  18. // 示例:
  19. let arr = ['mike', 'alice', 'tom', 'peter'];
  20. $('button').click(function () {
  21. $('span').eq(0).text($.inArray('mike', arr));
  22. $('span').eq(1).text($.inArray('alice', arr));
  23. jQuery('span').eq(2).text($.inArray('tom', arr));
  24. jQuery('span').eq(3).text($.inArray('peter', arr));
  25. });
  26. // 上面示例中:$('button')和$('span')都是通过$函数生成的JQ对象,分别使用了其click()和eq()、text()方法
  27. // 而text()方法中的内容是 $函数对象的inArray()方法,用于寻找值在当前数组中的索引并返回
  28. </script>
  29. </body>
  30. </html>

3. attr()的常用操作

  • attr(属性名):查看属性名

  • attr(属性名,属性值):设置属性值

  • attr(属性名,callback):第二个参数支持回调

实例演示:使用attr()制作选项卡:

  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>attr()操作实例之选项卡</title>
  7. </head>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. .container {
  15. width: 200px;
  16. }
  17. .container .nav {
  18. display: flex;
  19. }
  20. .container .nav li {
  21. list-style: none;
  22. flex: auto;
  23. text-align: center;
  24. }
  25. .container .nav li:hover {
  26. cursor: pointer;
  27. }
  28. .nav .active {
  29. background-color: lightblue;
  30. }
  31. .container .items div {
  32. display: none;
  33. width: 200px;
  34. height: 150px;
  35. background-color: lightblue;
  36. }
  37. .container .items .active {
  38. display: block;
  39. }
  40. </style>
  41. <body>
  42. <div class="container">
  43. <ul class="nav">
  44. <li class="active" data-index="1">导航一</li>
  45. <li data-index="2">导航二</li>
  46. <li data-index="3">导航三</li>
  47. </ul>
  48. <div class="items">
  49. <div class="active" data-index="1">导航一内容</div>
  50. <div data-index="2">导航二内容</div>
  51. <div data-index="3">导航三内容</div>
  52. </div>
  53. </div>
  54. <script src="./jquery/jquery-3.5.1.min.js"></script>
  55. <script>
  56. let lis = $('li', '.nav');
  57. let items = $('div', '.items');
  58. console.log(items);
  59. // console.log(lis);
  60. // 1. attr() 查看属性
  61. console.log(lis.eq(0).attr('class'));
  62. lis.click(function (ev) {
  63. lis.each(function (index, item) {
  64. // 2. attr() 设置属性
  65. lis.eq(index).attr('class', null);
  66. // console.log(index);
  67. });
  68. // console.log($(ev.target).attr('class', 'active'));
  69. $(ev.target).attr('class', 'active')
  70. items.each(function (index, item) {
  71. items.eq(index).attr('class', null);
  72. });
  73. // console.log(ev.target.dataset.index);
  74. items.each(function (index, item) {
  75. // if (ev.target.dataset.index === item.dataset.index) {
  76. // console.log(item);
  77. // $(item).attr('class', 'active');
  78. // 3. attr() 第二个参数回调
  79. $(item).attr('class', function () {
  80. if (ev.target.dataset.index === item.dataset.index) {
  81. $(item).attr('class', 'active');
  82. }
  83. })
  84. // }
  85. });
  86. });
  87. </script>
  88. </body>
  89. </html>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:你会es6?
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
1 comments
果冻 2020-08-19 13:55:30
不会啊,简单的查了下手册,ES6怎么用不知道呢
1 floor
Author's latest blog post