jQuery学习笔记

一、JQuery3.3.1

1、概述

 简介:jquery是一个优秀的javascript的轻量级框架,兼容css3和各大浏览器,提供了dom、events、animate、ajax等简易的操作。并且 jquery的插件非常丰富,大多数功能都有相应的插件解决方案。

Jquery就是1个js文件,只不过它对JS进行了简化。

Jquery由美国人John Resig在2006年创建。

官网:http://jquery.com/

分为1.X、2.X、3.X三个大版本,提供的方法基本一致,只不过2.X 3.X不再兼容IE 6、7、8之类的低版本浏览器。

宗旨:Write less, do more.	写得少,做得多。
    
    

特性:jQuery 是一个 JavaScript 函数库。

jQuery 库包含以下特性:

  • HTML 元素选取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • AJAX
  • Utilities

引入:

<script src="jquery-3.3.1.min.js></script>		该标签如果用来引包,里面不允许写任何js语句!
    
    

    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. alert( "hello world.");
  4. </script>

注:使用jQuery要先引入包、jquery-3.3.1.min.js去注释、缩短了变量等长度、比较小、所以引用这个min.js包

 

2、入口函数

$()jQuery() 称之为jq选择器环境,在里面加上引号填写相关选择器即可,就可以获取匹配的元素。

 


    
    
  1. js: window.οnlοad= function(...){}
  2. jq:$( document).ready( function(){...});
  3. $( function(){...});

    
    
  1. 1. 两者功能都一致,都可以让获取元素的行为发生在渲染元素之后;
  2. 2. JS入口只允许存在一个,书写多个的话,后面的会覆盖前面的;
  3. 3. JQ入口允许存在多个,且并行存在,都会生效;
  4. 4. JS入口需要等待页面上所有资源加载完毕,而JQ入口只需要等待页面上标签渲染完毕即可,JQ入口速度更快。

演示:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. // JS 页面加载完成
  4. window.onload = function () {
  5. alert( "test1");
  6. }
  7. window.onload = function () {
  8. alert( "test2");
  9. }
  10. // $ 符号就是 jquery 的简写方式.
  11. // 复杂书写 :
  12. $( document).ready( function () {
  13. alert( "test3");
  14. });
  15. // 简化书写
  16. $( function () {
  17. alert( "test4");
  18. })
  19. </script>

3、事件


    
    
  1. js:js对象.onclick = function(){...}
  2. jq:jquery对象.click( function(){...})
  3. 注意:jq中的事件类型统一不要加on

演示:

js代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // 注意 : JS 的代码都是写在 = 后面. jquery 的代码基本上都是写在 () 里面.
  4. // jquery 入口函数 :
  5. $( function () {
  6. // JS 代码 :
  7. var btn = document.getElementById( "btn");
  8. btn.onclick = function () {
  9. alert( "按钮被点击了...");
  10. }
  11. });
  12. </script>

jQuery代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // 注意 : JS 的代码都是写在 = 后面. jquery 的代码基本上都是写在 () 里面.
  4. // jquery 入口函数 :
  5. jQuery( function () {
  6. // jquery 代码 :
  7. $( "#btn").click( function () {
  8. alert( "按钮被点击了...");
  9. });
  10. });
  11. </script>
  <input type="button" value="按钮" id = "btn"/>
    
    

4、整体操作


    
    
  1. 1、在jq里面,通过$()返回的数组,允许开发者整体操纵
  2. 2、选择数组中的其中一个元素:js对象[下标]           jq对象.e q(下标) 

html代码:


    
    
  1. <body>
  2. <input type="button" value="按钮1111" />
  3. <input type="button" value="按钮2222" />
  4. </body>

js代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // jquery 入口函数 :
  4. $( function () {
  5. // JS 代码为两个按钮绑定事件 (JS代码不可以进行整体绑定)
  6. // JS 中 document.getElementsByTagName 该方法返回的是一个数组, 只能取出对应的元素才可以绑定.
  7. var inputs = document.getElementsByTagName( "input");
  8. inputs[ 0].onclick = function () {
  9. alert( "按钮1111被点击了...");
  10. }
  11. inputs[ 1].onclick = function () {
  12. alert( "按钮2222被点击了...");
  13. }
  14. });
  15. </script>

jQuery代码:

A、JQuery整体操作绑定


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // jquery 入口函数 :
  4. $( function () {
  5. // jquery 书写 :
  6. $( "input").click( function () {
  7. alert( "按钮被点击了...");
  8. });
  9. });
  10. </script>

B、单个标签实现事件绑定


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // jquery 入口函数 :
  4. $( function () {
  5. // jquery 书写 :
  6. $( "input").eq( 0).click( function () {
  7. alert( "按钮1111被点击了...");
  8. });
  9. $( "input").eq( 1).click( function () {
  10. alert( "按钮2222被点击了...");
  11. });
  12. });
  13. </script>

5、对象互转

说明:

jquery本质上虽然也是js,但是使用jquery的属性和方法必须保证对象是通过jquery的方式获取的,使用js获取的对象是js对象,使用jquery方式获取的对象是jquery对象。如果想交替使用,那么必须对象互转。

格式:


    
    
  1. js对象转换成jq对象:$(js对象)
  2. jq对象转换成js对象:jq对象[索引] 或 jq对象.get(索引)

演示:

html代码:


    
    
  1. <body>
  2. <input type="button" value="按钮" id="btn" />
  3. </body>

js转jQuery对象


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // jquery 入口函数 :
  4. $( function () {
  5. // JS 对象转 jquery 对象
  6. var btn = document.getElementById( "btn");
  7. // JS 对象调用 jquery 的方法. (行不通)
  8. /*btn.click(function () {
  9. alert("按钮被点击了...");
  10. });*/
  11. // 需求 : 将 JS 对象转成 jquery 对象. 给点钱就行了.
  12. $(btn).click( function () {
  13. alert( "按钮被点击了...");
  14. });
  15. });
  16. </script>

jQuery转js对象


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. // jquery 入口函数 :
  4. $( function () {
  5. // jquery 对象 转 JS 对象
  6. /*$("#btn").onclick = function () {
  7. alert("按钮被点击了...");
  8. }*/
  9. :jq对象[索引] 或 jq对象.get(索引)
  10. // 方式一 : [下标]
  11. /*$("#btn")[0].onclick = function () {
  12. alert("按钮被点击了...");
  13. }*/
  14. // 方式二 : get(下标)
  15. $( "#btn").get( 0).onclick = function () {
  16. alert( "按钮被点击了...");
  17. }
  18. });
  19. </script>

6、控制css

6.1、单属性访问:

jq对象.css('width');
    
    

6.2、单属性修改:

jq对象.css('width','100px');
    
    

6.3、多属性修改:


    
    
  1. jq对象.css({ 'width': '100px', 'height': '100px'});
  2. 可一次修改多个css属性

演示:

html代码:


    
    
  1. <body>
  2. <div id="box"> </div>
  3. </body>

js代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // JS 控制样式 : style
  5. var box = document.getElementById( "box");
  6. box.style.width = "100px";
  7. box.style.height = "100px";
  8. box.style.backgroundColor = "pink";
  9. });
  10. </script>

jQuery代码:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // jquery 控制样式 : css
  5. $( "#box").css({
  6. width: "100px",
  7. height: "100px",
  8. backgroundColor: "skyblue"
  9. });
  10. // 单个属性 :
  11. $( "#box").css( "backgroundColor", "red");
  12. });
  13. </script>

7、控制标签属性

7.1、单属性访问:

jq对象.attr('class');          
    
    

7.2、单属性修改:

jq对象.attr('class ','myClass');  
    
    

7.3、多属性修改:


    
    
  1. jq对象.attr({ 'class': 'myClass', 'id': 'myId'});
  2. 可一次修改多个attr属性

演示:

html代码:


    
    
  1. <body>
  2. <div id="box" class="test" title="bbb"> </div>
  3. </body>

js代码:浏览器F12/开发者模式查看


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 修改 box 标签的class 与 title 属性数值
  5. var box = document.getElementById( "box");
  6. box.className = "bbb";
  7. box.title = "这里什么都没有";
  8. });
  9. </script>

jQuery代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 修改 box 标签的class 与 title 属性数值
  5. $( "#box").attr( "class", "aaa");
  6. $( "#box").attr( "title", "这里什么都没有");
  7. });
  8. </script>

7.4、删除属性:

jq对象.removeAttr('class ');  
    
    

演示:

html代码:


    
    
  1. <body>
  2. <input type="checkbox" id="ck">
  3. <input type="button" value="Click" id="btn">
  4. </body>

jQuery代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 点击按钮, 删除 checkbox 标签的 id 属性
  5. $( "#btn").click( function () {
  6. $( "#ck").removeAttr( "id");
  7. });
  8. });
  9. </script>

注意:

获取属性我们也可以使用prop(),他跟attr()是互补的,一般来说,我们都是使用attr()来获取标签属性,但是有的时候也会有获取不到的情况,这个时候可以使用prop()的形式来获取,比如表单元素的checked属性。

jq对象.prop();
    
    

具有 true false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

演示:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 点击click按钮, 查看 checkbox 选项框的 checked 属性数值
  5. $( "#btn").click( function () {
  6. // attr 可以获取属性, 但是 `选项框` 的 checked 属性还是获取不到.
  7. var result = $( "#ck").attr( "checked");
  8. alert( "result = " + result);
  9. // prop 属性的缩写.
  10. result = $( "#ck").prop( "checked");
  11. alert( "result = " + result);
  12. });
  13. });
  14. </script>

 

8、案例一:是否接受协议

图片演示如下:

8.1、说明:


    
    
  1. 按钮的本身是disabled禁用的状态
  2. 当复选框被勾选上的时候,按钮变成启用的状态,其次样式产生了变化
  3. 按钮样式的变化都已经通过特定的 class名字书写好样式了,只要对按钮的class名字进行修改即可

8.2、演示:

html代码:


    
    
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title> </title>
  6. <style type="text/css">
  7. /*input 标签中包含 submit 的类名*/
  8. input .submit {
  9. background: #69b946;
  10. display: inline-block;
  11. height: 52px;
  12. width: 306px;
  13. text-align: center;
  14. cursor: pointer;
  15. font: 22px/ 52px "微软雅黑";
  16. color: #fff;
  17. border-radius: 3px;
  18. border-style: solid;
  19. border-width: 1px;
  20. border-color: transparent;
  21. }
  22. input .disabled {
  23. background: #f4f9fd;
  24. color: #888;
  25. cursor: default;
  26. border-color: #d0dae3;
  27. cursor: default;
  28. outline: none;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <form action="https://www.baidu.com">
  34. <input id="kuang" type="checkbox" />
  35. <label for="kuang">同意"服务条款"和"用户须知"、"隐私权相关政策" </label>
  36. <br />
  37. <br />
  38. <input type="submit" disabled="disabled" class="submit disabled" id="btn" />
  39. </form>
  40. </body>
  41. </html>

jQuery代码:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // 1. 获取 `选项框`, 并绑定单击事件
  5. $( "#kuang").click( function () {
  6. // 2. 获取 `选项框` 的状态
  7. // var checked = $("#kuang").attr("checked"); 行不通
  8. var checked = $( "#kuang").prop( "checked");
  9. // alert("checked = " + checked);
  10. // 3. 判断
  11. if (checked == true) {
  12. // 修改 btn 提交按钮的 `属性值`
  13. $( "#btn").attr({
  14. "disabled" : false,
  15. class: "submit"
  16. });
  17. } else {
  18. $( "#btn").attr({
  19. "disabled" : true,
  20. class: "submit disabled"
  21. });
  22. }
  23. });
  24. })
  25. </script>

 

9、val()函数

针对表单元素的value属性的值,在jq里面单独封装了一个方法,本身使用attr()也是不能正确获取的。

格式:

jq对象.val();
    
    

注意:val()函数有参时,修改value值;无参时,返回value值。

演示:

html代码:


    
    
  1. <body>
  2. <input type="text" id="text" value="请输入内容..." />
  3. <input type="button" value="Click" id="btn" />
  4. </body>

js代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 点击 btn 按钮, 获取 text 文本框中的 value 值.
  5. // JS 方式 :
  6. var btn = document.getElementById( "btn");
  7. var text = document.getElementById( "text");
  8. btn.onclick = function () {
  9. var value = text.value;
  10. alert( "value = " + value);
  11. }
  12. });
  13. </script>

jQuery代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. // 需求 : 点击 btn 按钮, 获取 text 文本框中的 value 值.
  5. // jquery 获取属性
  6. $( "#btn").click( function () {
  7. // 方式一 : attr 行不通
  8. var value = $( "#text").attr( "value");
  9. alert(value);
  10. // 方式二 : prop 保险,安全
  11. value = $( "#text").prop( "value");
  12. alert(value);
  13. // 方式三 : val();
  14. value = $( "#text").val();
  15. alert(value);
  16. });
  17. });
  18. </script>

 

10、案例二:线上搜索框

10.1、说明:


    
    
  1. 1. 当文本输入框获取焦点的时候,里面默认的文字清空,当失去焦点的时候,里面的文字又会回来。
  2. 2. 当里面有用户输入的内容的时候,获取焦点不能清空文字。失去焦点也不可以还原文字。

10.2、演示:

html代码:


    
    
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title> </title>
  6. <style type="text/css">
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. border: 0;
  11. list-style: none;
  12. }
  13. .box {
  14. height: 40px;
  15. width: 258px;
  16. margin: 100px auto 0;
  17. }
  18. .box input {
  19. float: left;
  20. width: 210px;
  21. padding-left: 6px;
  22. height: 40px;
  23. background: url(../img/left.jpg);
  24. color: #ccc;
  25. }
  26. .box button {
  27. float: right;
  28. width: 42px;
  29. height: 40px;
  30. background: url(../img/right.jpg);
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="box">
  36. <input type="text" value="请输入文字..." />
  37. <button> </button>
  38. </div>
  39. </body>
  40. </html>

jQuery实现方式一:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // 需求 : 为 input 标签绑定 focus 聚焦事件
  5. $( "input").focus( function () {
  6. // 1. 获取 input 标签的 value 值
  7. var value = $( "input").val();
  8. // alert(value);
  9. // 2. 判断
  10. if (value == "请输入文字...") {
  11. // 3. 清空文字, 并同时设置样式
  12. $( "input").val( "").css( "color", "black");
  13. }
  14. });
  15. // 需求 : 为 input 标签绑定 blur 聚焦事件
  16. $( "input").blur( function () {
  17. if ($( "input").val() == "") {
  18. $( "input").val( "请输入文字...").css( "color", "gray");
  19. }
  20. });
  21. })
  22. </script>

jquery实现方式二:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // 需求 : 为 input 标签绑定 focus 聚焦和离焦事件
  5. $( "input").focus( function () {
  6. // 1. 获取 input 标签的 value 值
  7. var value = $( "input").val();
  8. // alert(value);
  9. // 2. 判断
  10. if (value == "请输入文字...") {
  11. // 3. 清空文字, 并同时设置样式
  12. $( "input").val( "").css( "color", "black");
  13. }
  14. }).blur( function () {
  15. if ($( "input").val() == "") {
  16. $( "input").val( "请输入文字...").css( "color", "gray");
  17. }
  18. });
  19. })
  20. </script>

11、控制标签内容


    
    
  1. jq对象 .html();
  2. 括号里面写参数,代表修改,不写代表获取。

演示:


    
    
  1. <body>
  2. <div id="box"> </div>
  3. </body>

js代码:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // 1. 获取 box 容器
  5. document.getElementById( "box").innerHTML = "<h1>你好, JS.</h1>";
  6. })
  7. </script>

JQuery代码:


    
    
  1. <script src="../js/jquery-3.3.1.min.js"> </script>
  2. <script>
  3. $( function () {
  4. // 1. 获取 box 容器
  5. $( "#box").html( "<h1>你好, 世界!</h1>");
  6. })
  7. </script>

 

12、控制class


    
    
  1. Jq对象.addClass() 添加类
  2. Jq对象.removeClass() 删除类
  3. Jq对象.hasClass() 判断是否有类
  4. Jq对象.toggleClass() 切换类

演示:

html代码:


    
    
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title> </title>
  6. <style>
  7. .box{
  8. width: 200px;
  9. height: 200px;
  10. background: pink;
  11. }
  12. .bgcolor{
  13. background: skyblue;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="box"> </div>
  19. <input type="button" value="新增class" />
  20. <input type="button" value="移除class" />
  21. <input type="button" value="切换class" />
  22. <input type="button" value="判断是否有class" />
  23. </body>
  24. </html>

jQuery代码:


    
    
  1. <script src= "../js/jquery-3.3.1.min.js"></script>
  2. <script>
  3. $( function () {
  4. var inputs = $( "input");
  5. // 添加 class
  6. inputs.eq( 0).click( function () {
  7. $( ".box").addClass( "bgcolor");
  8. });
  9. // 移除 class
  10. inputs.eq( 1).click( function () {
  11. $( ".box").removeClass( "bgcolor");
  12. });
  13. // 切换 class
  14. inputs.eq( 2).click( function () {
  15. $( ".box").toggleClass( "bgcolor");
  16. });
  17. // 判断是否存在 class
  18. inputs.eq( 3).click( function () {
  19. var result = $( ".box").hasClass( "bgcolor");
  20. alert( "result = " + result);
  21. });
  22. });
  23. </script>

原文链接: https://blog.csdn.net/sswqzx/article/details/82834407
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值