jq入门教程
参考文档地址:

官网文档

菜鸟教程

准备工作

1:jQuery介绍:
是一个用js封装的库,专门用来方便我们操作dom节点的
$(‘#app’).html(); //获取id为app的元素的节点的内容(包括标签)

2:导入 jQuery.js 使用本地的js 或 cdn 地址都可以;

  1. https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js
  2. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

3:创建jQuery对象

  1. var aa = $('选择器');
  2. var bb = $(dom节点);

(一)绑定事件

1:$(选择器).on(事件类型,选择器,绑定函数);
2:时间托管

  1. $(祖先选择器).on(事件类型, 选择器, 绑定函数);
  2. $(祖先选择器).delegate(选择器, 事件类型, 绑定函数);
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style>
  6. ul {border: 1px solid;}
  7. li {background-color: gray;margin-top: 15px;}
  8. </style>
  9. </head>
  10. <body>
  11. <ul>
  12. <li>1.xxxx</li>
  13. <li>2.xxxx</li>
  14. <li>3.xxxx</li>
  15. <li>4.xxxx</li>
  16. <li>5.xxxx</li>
  17. </ul>
  18. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  19. <script>
  20. </script>
  21. </body>
  22. </html>

3:$(document).reday(fn); 相当于window.onload

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
  6. <script>
  7. // 在这里给button标签添加事件
  8. </script>
  9. </head>
  10. <body>
  11. <button>
  12. 登录
  13. </button>
  14. </body>
  15. </html>

(二)ajax 请求

1:get 请求:https://jquery.cuishifeng.cn/jQuery.get.html
2:post 请求
3:ajax 请求

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  2. <script>
  3. $.ajax({
  4. type:'get',
  5. url: 'http://huruqing.cn:3000/api/film/getList2',
  6. data: {},
  7. dataType: 'json',
  8. success: function(res) {
  9. console.log(res);
  10. },
  11. // 网络问题,地址不对等原因导致前端跟后台都没有建立成功的通信
  12. error: function() {
  13. alert('请求错误');
  14. }
  15. })
  16. </script>

(三)选择器

1:$(选择器名称)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. </head>
  6. <body>
  7. <div id="app">app</div>
  8. <div class="aaa">aaa</div>
  9. <button>哈哈</button>
  10. <ul>
  11. <li>1</li>
  12. <li>2</li>
  13. <li>3</li>
  14. </ul>
  15. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  16. <script>
  17. // 选择#app元素并打印
  18. // 选择.aaa元素并打印
  19. // 选择ul后面的li元素并打印
  20. $('button').on('click', function() {
  21. alert(2222);
  22. });
  23. $('li').on('click', function() {
  24. console.log(this);
  25. })
  26. </script>
  27. </body>
  28. </html>

ready()

  1. <script>
  2. $(document).ready(function() {
  3. alert('页面加载完成');
  4. // 需要页面加载完成 $('#app')才存在
  5. $('#app').on('click', function() {
  6. alert(2222);
  7. })
  8. })
  9. </script>

2:find 和 children 都用来查找后代元素

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. </head>
  6. <body>
  7. <div class="box">
  8. <div>adsfasdf</div>
  9. <p>sfasdf</p>
  10. <span>asdfa</span>
  11. <span class="aa">asdfa</span>
  12. </div>
  13. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  14. <script>
  15. var $box = $('.box');
  16. // 查找$box的后代元素,类名为.aa
  17. $('.box').on('click', '.aa', function() {
  18. // console.log(event.target);
  19. console.log(this);
  20. });
  21. // 查找$box所有后代(子代)元素
  22. var $children = $box.children();
  23. console.log('$children', $children);
  24. </script>
  25. </body>
  26. </html>

3: parents,closest 查找祖先元素

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. </head>
  6. <body>
  7. <div class="box">
  8. <div>
  9. <div class="aaa">
  10. <p>
  11. <span>后代元素</span>
  12. </p>
  13. </div>
  14. </div>
  15. </div>
  16. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  17. <script>
  18. var $span = $('span');
  19. // 查找span元素的所有的祖宗元素
  20. var $parents = $span.parents();
  21. console.log('$parents', $parents);
  22. // 查找祖宗元素里离它最近的,类名为aaa的元素
  23. var $aaa = $span.closest('.aaa');
  24. console.log('$aaa', $aaa);
  25. </script>
  26. </body>
  27. </html>

4:siblings 查找兄弟元素

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style>
  6. .active{color: red;}
  7. li {cursor: pointer;}
  8. </style>
  9. </head>
  10. <body>
  11. <ul>
  12. <li>第1li元素</li>
  13. <li class="active">第2li元素</li>
  14. <li>第3li元素</li>
  15. <li>第4li元素</li>
  16. </ul>
  17. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  18. <script>
  19. var $active = $('.active');
  20. // 查找.active的所有兄弟元素
  21. var $brothers = $active.siblings();
  22. console.log('$brothers', $brothers)
  23. </script>
  24. </body>
  25. </html>

(四)操作 html

1:$(选择器).html 相当于innerHTML

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style>
  6. .active{color: red;}
  7. li {cursor: pointer;}
  8. </style>
  9. </head>
  10. <body>
  11. <div id="app">
  12. <div>dfasdfadsf</div>
  13. <div>dfasdfadsf</div>
  14. <div>dfasdfadsf</div>
  15. </div>
  16. <ul>
  17. </ul>
  18. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  19. <script>
  20. // 获取app里面的html字符串并打印
  21. //获取app里面的html字符窜
  22. var str = $('#app').html();
  23. console.log(str)
  24. var str3 = `<li>第1li元素</li>
  25. <li>第2li元素</li>
  26. <li>第3li元素</li>
  27. <li>第4li元素</li>`;
  28. // 把str字符串添加到ul元素里
  29. $('ul').html(str3);
  30. </script>
  31. </body>
  32. </html>

2:$(选择器).text() 相当于innerText
3:$(选择器).val() 相当于input元素的.value

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style>
  6. .active{color: red;}
  7. li {cursor: pointer;}
  8. </style>
  9. </head>
  10. <body>
  11. <div id="app">
  12. <input id="username" type="text" value="huruqing"><br/>
  13. <input id="phone" type="text">
  14. </div>
  15. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  16. <script>
  17. // 读取输入框#username的值
  18. let usename = $('#username').val();
  19. console.log(usename)
  20. // 设置#phone输入框的值
  21. $('#phone').val(1234654654);
  22. console.log($('#phone').val())
  23. </script>
  24. </body>
  25. </html>

$(选择器).append() 相当于appendChild

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. </head>
  6. <body>
  7. <ul>
  8. <li>xxx</li>
  9. <li>xxx</li>
  10. <li>xxx</li>
  11. </ul>
  12. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  13. <script>
  14. // 在ul后面再添加一条数据
  15. $('ul').append(`<li>那就是</li>`)
  16. </script>
  17. </body>
  18. </html>

(五) 操作css

1:添加或移除一个类

  • $(选择器).addClass(类名) 添加class;
  • $(选择器).removeClass(类名) 移除class;

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <style>.red{color: red;}</style>
    6. </head>
    7. <body>
    8. <div id="app">asdfasdffsf</div>
    9. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    10. <script>
    11. // 给#app添加class red
    12. $('#app').addClass('red');
    13. // 给#app移除class red (3秒后移除red这个类名)
    14. setTimeout(function(){
    15. $('#app').remove('red')
    16. },3000)
    17. </script>
    18. </body>
    19. </html>
  1. $(选择器).toggleClass(类名) // 有则去掉,无则加上

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <style>.dsn{display:none;}</style>
    6. </head>
    7. <body>
    8. <button>点击</button>
    9. <div id="app">
    10. <p> asdfasdfasdfasdfasdf </p>
    11. <p> asdfasdfasdfasdfasdf </p>
    12. <p> asdfasdfasdfasdfasdf </p>
    13. <p> asdfasdfasdfasdfasdf </p>
    14. </div>
    15. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    16. <script>
    17. //本来就是点击事件toggle()
    18. $('button').on('click',function(){
    19. $('#app').toggleClass('dsn')
    20. })
    21. </script>
    22. </body>
    23. </html>
  2. $(选择器).css() // 获取样式和设置样 ```javascript <!DOCTYPE html>

asdfasdffsf

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  2. <script>
  3. // 获取字体大小
  4. let font_size = $('.red').css('font-size')
  5. // 设置样式:背景变灰色,添加边框,可以连着写
  6. $('.red').css('backgroung-color','skyblue');
  7. $('.red').css('border','1px solid red')
  8. // 链式调用
  9. setTimeout(function(){

$(‘.red’).css(‘background-color’, ‘green’).css(‘border’, ‘2px solid red’).css(‘font-size’, ‘26px’); })

  1. <a name="NsPKf"></a>
  2. ## (六)操作属性
  3. 1. $(选择器).attr() 获取属性或者设置属性
  4. ```javascript
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta charset="UTF-8">
  9. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11. <title>Document</title>
  12. </head>
  13. <body>
  14. <a href="http://www.baidu.com">百度</a>
  15. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  16. <script>
  17. // 获取a标签的href属性
  18. var href = $('a').attr('href');
  19. console.log('href', href);
  20. // 2秒后把百度换成新浪,同时改变它的href地址
  21. setTimgout(function(){
  22. $('a').text('新娘');
  23. $('a').attr('href','dfgdfgdfg')
  24. })
  25. </script>
  26. </body>
  27. </html>
  1. $(选择器).removeAttr() 删除属性 ```javascript <!DOCTYPE html>

百度

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  2. <script>
  3. // 两秒后删除属性href
  4. setTimeout(function(){
  5. $('a').removeAttr('href')
  6. },2000)
  7. </script>

  1. 3. $(选择器).prop() 操作属性 类似attr, attr不管用的时候使用prop
  2. <a name="KQaBX"></a>
  3. ## (七) 效果
  4. 1. show() 显示和hide() 隐藏
  5. ```javascript
  6. <!DOCTYPE html>
  7. <html lang="en">
  8. <head>
  9. <meta charset="UTF-8">
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  11. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  12. <title>Document</title>
  13. </head>
  14. <body>
  15. <div>阿斯顿发的说法是对方</div>
  16. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  17. <script>
  18. // 2秒后隐藏div
  19. setTimeout(function(){
  20. $('div').hide()
  21. },2000)
  22. // 1秒后显示div
  23. setTimeout(function(){
  24. $('div').show()
  25. },1000)
  26. </script>
  27. </body>
  28. </html>
  1. 滑动 ```javascript <!DOCTYPE html>
  1. <div class="box">
  2. <p>这是一个段落。</p>
  3. <p>这是一个段落。</p>
  4. <p>这是一个段落。</p>
  5. <p>这是一个段落。</p>
  6. <p>这是一个段落。</p>
  7. <p>这是一个段落。</p>
  8. <p>这是一个段落。</p>
  9. </div>
  10. <button class="btn1">上滑</button>
  11. <button class="btn2">下滑</button>
  12. <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
  13. </script>
  14. <script>
  15. // 点击.box向上滑动

$(‘btn1’).on(‘click’,function(){

  1. $('.box').slideUp();
  2. })
  3. // 点击.box向下滑动

$(‘btn1’).on(‘click’,function(){

  1. $('.box').slideDown();
  2. })
  3. </script>

```

  1. 淡入淡出 https://www.runoob.com/jquery/jquery-fade.html

(八) 插件

https://www.jq22.com/jq1-jq3(一个日期插件示例)

(九) zepto.js

移动版的jquey