JQuery&Ajax基础知识

1、Jquery简介

  1. Query是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于20061月由John Resig发布。jQuery设计的宗旨是“write LessDo More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
  2. jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的CSS选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

2、Jquery下载和引入

  1. 1Jquery下载地址:https://jquery.com/
  2. 2Jquery引入方式(一般放在head标签中):
  3. 一、本地下载jquery文件标签引入
  4. <script type="text/javascript" src="jquery.js"></script>
  5. 二、在线CDN引入
  6. <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery
  7. /jquery-1.4.min.js"></script>

3、Jquery包装集对象和JqueryDom对象的区别

  1. Jquery包装集对象是初始化一个函数,传入选择器初始化。
  2. DOM对象是一个打印标签文本的字符串。
  3. Jquery包装集对象与jsDom树的互转:
  4. Jquery---》DOM$("选择器")[索引]
  5. DOM--》jQuery $(document.getElementById("id选择器"));
  6. 对象的遍历:
  7. $("选择器").each(function(){
  8. var t=$(this) //this代表这个对象的所有元素
  9. });
  • 测试代码
  1. var app =document.getElementById("app");
  2. console.log(app);
  3. //dom对象转为jquery包装集对象
  4. var app_$=$(app);
  5. console.log(app_$);
  6. //如果js原生获取对象不存在显示null jquery获取对象不存在显示空对象:jQuery.fn.init(0)
  7. var f1 =document.getElementById("f1");
  8. console.log(f1);//null
  9. var f1_$=$("f1");
  10. console.log(f1_$);//jQuery.fn.init(0)
  11. //jquery获取DOM对象 两种方式
  12. var app1=jQuery("#app");//注意Jquery单词大小写。
  13. console.log(app1);
  14. var app2=$("#app");
  15. console.log(app2);//jQuery.fn.init [div#app]
  16. //jquery获取JQueryDOM对象 两种方式
  17. var app1=jQuery("#app");//注意Jquery单词大小写。
  18. var dom1=app1[0];//JQuery对象转化为DOM对象
  19. //遍历
  20. app1.each(function(){
  21. var j=$(this);
  22. console.log(j); //jQuery.fn.init [prevObject: jQuery.fn.init(1)]和jQuery.fn.init [div#app]对象
  23. })

4、基础选择器

  1. //获取基础选择器对象
  2. //可以通过id选择器、class选择器、标签选择器、属性值、通用选择器获取对象
  3. //id选择器上面已经介绍过了
  4. console.log("************************************************");
  5. var info=$(".info");//类选择器 可能获取多个
  6. console.log(info);
  7. var p_=$("p"); //可能获取多个标签选择器 返回一个数组
  8. // console.log(p_);
  9. //通过属性获取对象 也可能获取多个对象
  10. var attr=$("[src]");
  11. // console.log(attr);
  12. //获取具体属性值的标签
  13. var attr_v=$("[href='javascript:void(0);']");//这里获取超链接对象
  14. console.log(attr_v);
  15. //获取通用选择器 获取所有的标签对象
  16. var common=$("*");
  17. console.log(common);
  18. console.log(common[5].innerHTML); //打印body标签内的所有html代码。
  19. console.log(common[5].innerText); //打印body标签内的所有文本不包括html标签。

5、层次选择器

  1. 获取层次选择器对象:
  2. 后代选择器 标签名 标签名 获取所有的后代对象
  3. 子代选择器 标签名>标签名 获取所有的第一代子标签对象
  4. 相邻兄弟选择器 标签名+标签名 只会向下获取第一个同级标签对象,若是不存在则返回null
  5. 普通兄弟选择器 标签名~标签名 向下获取所有同级兄弟选择器对象
  • 测试代码
  1. //后代选择器 获取所有li子标签
  2. var son_=$("#parent li")
  3. console.log(son_);
  4. //子代选择器
  5. var son_1=$("#parent>li"); //只有两个li
  6. console.log(son_1);
  7. //相邻兄弟选择器
  8. var son_2=$("#parent+a");
  9. console.log(son_2);//空对象
  10. var son_3=$("#parent+p");
  11. console.log(son_3);//有一个p标签对象
  12. //普通兄弟选择器
  13. var son_4=$("#parent~p");
  14. console.log(son_4);//有一个p标签对象

6、表单选择器

  1. <form id='myform' name="myform" action="http://www.baidu.com">
  2. 姓名:<input type="text" id="uname" name="uname"/><br />
  3. 密码:<input type="password" id="upwd" name="upwd" /><br />
  4. 年龄:<input type="radio" name="uage" value="0" checked="checked"/>小屁孩
  5. <input type="radio" name="uage" value="1"/>你懂得 <br />
  6. 爱好:<input type="checkbox" name="ufav" value="篮球"/>篮球
  7. <input type="checkbox" name="ufav" value="爬床"/>爬床
  8. <input type="checkbox" name="ufav" value="代码"/>代码<br />
  9. 来自:<select id="ufrom" name="ufrom">
  10. <option value="-1"selected="selected">请选择</option>
  11. <option value="0">北京</option>
  12. <option value="1">上海</option>
  13. </select><br />
  14. <!-- 信息提示框-->
  15. <div id="validate" style="color: red;">
  16. </div>
  17. <button type="submit" onclick="return checkForm();">提交</button>
  18. <button type="reset" onclick="resetForm();">重置</button>
  19. </form>
  20. </body>
  21. <script type="text/javascript">
  22. //表单选择器
  23. var inpu=$(":input"); //获取所有表单对象 包括input select textarea button
  24. console.log(inpu);
  25. //获取单个表单对象
  26. var inpu_1=$("input");
  27. console.log(inpu_1);
  28. //获取下拉菜单对象
  29. var select_=$("select");
  30. console.log(select_);
  31. //获取button按钮对象
  32. var button_=$("button");
  33. console.log(button_);
  34. </script>

7、JQuery操作DOM属性

  • 操作属性
  1. 基本语法:
  2. 1Jquery对象.attr("属性名") 获取属性值
  3. 2Jquery对象.attr("属性名","值") 设置属性名
  4. 3 jquery对象.prop("属性名","值") 设置属性名
  5. 2Jquery对象.prop("属性名") 获取属性值
  6. 固有属性:标签内置的属性名。 比如:nameidclassstyle
  7. 布尔属性:属性值为truefalse 比如:selectedchecked
  8. 自定义属性:用户自己设置的属性
  9. attr prop的区别?
  10. attr对于固有和自定义属性都可以使用,布尔属性不能使用。
  11. prop对于固有属性可以使用,对boolean属性返回truefalse,自定义属性不能使用。
  12. 总结:布尔属性使用prop()方法 固有属性和自定义属性使用attr()方法
  • 测试代码
  1. //测试自定义属性
  2. var v=$("#test").attr("abc");
  3. console.log(v);
  4. $("#test").attr("abcd","efg");
  5. //测试固有属性
  6. var name=$("#test").attr("name");
  7. console.log(name);
  8. $("#test").attr("class","red");
  9. //测试布尔属性 不能操作布尔属性
  10. $("test").attr("checked");
  11. $("test").attr("checked","checked");
  12. console.log("**************************************************************");
  13. //prop方法获取布尔属性 如果设置了布尔属性返回true 没有设置布尔属性返回false。
  14. var check=$("#test").prop("checked");
  15. console.log(check);
  16. var check=$("#test1").prop("checked","checked"); //可以设置布尔属性
  17. var name1=$("#test").prop("name");//获取固有属性值
  18. console.log(name1);
  19. $("#test1").prop("class","red");//设置固有属性
  20. var abc=$("#test").prop("abc"); //获取自定义属性 不能获取自定义属性
  21. console.log(abc);
  22. $("#test").prop("abcd","A"); //不能设置自定义属性
  • 使用class、addclass、css方法
  1. 前提:先设置好相关类选择器样式。
  2. $('选择器').attr('class',值):设置calss属性,添加类选择器样式。
  3. $('选择器').addclass("多个类选择器"):添加多个类选择器样式。
  4. $('选择器').css('属性','值'):添加单个具体样式。
  5. $('选择器').css({'属性':'值','属性':'值','属性':'值',……}):添加多个具体样式。
  • 测试代码
  1. <style>
  2. .red{
  3. color: red;
  4. }
  5. .green{
  6. color: green;
  7. }
  8. .large{
  9. font-size: 30px;
  10. }
  11. </style>
  12. <div id="contain">
  13. <p> 你好*******************************</p>
  14. </div>
  15. <script>
  16. //前提要设置好类选择器样式
  17. //增加类选择器样
  18. $("#contain").addClass("red large");
  19. $("p").attr("class","green"); //标签设置添加类选择器
  20. //设置具体样式 css('','')
  21. $("p").css("font-family","楷体"); //设置单个样式
  22. //设置多个具体样式 css({'':'','':''})
  23. $("p").css({"border-color":"red","border-size":"1px","border-style":"solid"});
  24. </script>
  • 使用html()、text()、val()方法

  1. html()和text()区别?
  2. html()可以识别html标签和文本,进行渲染,而text()不能识别html标签,只能识别文本。
  3. html()和text()都可以打印出标签和文本字符串。
  4. value()可以设置和获取标签value的值。
  • 测试代码
  1. //测试代码
  2. var h=$("#contain").html();
  3. console.log(h);
  4. //设置html标签 相当于innerHTML=""
  5. var h=$("#app").html("<img src='static/image-20230713201709926.png' alt='图片' title='点击看看'>");
  6. var text=$("#contain").text(); //获取标签内的文本文字
  7. console.log(text);
  8. $("#app").text("你好YAYA1"); //在标签中设置文本文字
  9. var val=$("[name='username']").val(); //获取输入框文的value值
  10. console.log(val);
  11. $("[name='username']").val("好好爱后悔哦啊好哦");//设置输入框文本的value值
  • 创建接节点、添加节点、删除节点

  1. 创建节点:把要创建的标签文本作为参数传入$()转成jQuery节点对象。
  2. 添加节点可分为四大类:在子标签对象前后添加节点,在同级对象前台添加节点。
  3. 在子标签前添加节点的方法有两个:
  4. $("父节点对象").prepend("添加的节点对象");
  5. $("添加的节点对象").prependTo("父节点对象");
  6. 在子标签后添加节点的方法有两个:
  7. $("父节点对象").append("添加的节点对象");
  8. $("添加的节点对象").appendTo("父节点对象");
  9. 在同级节点前添加节点
  10. $("父节点对象").before("添加的节点对象");
  11. 在同级节点后添加节点
  12. $("父节点对象").after("添加的节点对象");
  13. 删除节点:$("要删除的节点").remove();
  14. 清空文本文字:$("要删除的节点").empty();
  • 测试代码
  1. //在子元素最前面添加节点
  2. var t="<p>添加的元素前…………………………</p>";
  3. var w="<p>添加的元素后…………………………</p>"
  4. $("#contain").prepend($(t));
  5. $(t).prependTo($("#contain"));
  6. //在子节点最后面添加节点
  7. $("#contain").append($(w));
  8. $(w).appendTo($("#contain"));
  9. var c="<ul>"+
  10. "<li>茄子</li>"+
  11. "<li>菠菜</li>"+
  12. "<li>白菜</li>"+
  13. "<li>青菜</li>"+
  14. "</ul>";
  15. //在同级元素前添加元素
  16. $("#contain").before($(c));
  17. //在同级元素后添加元素
  18. $("#contain").after($(c));
  19. //删除和清空文本元素
  20. $("#contain").remove(); //只能删除代码中写好的标签对象
  21. $("#contain").empty(); //清空标签内的文本文字

8、JQuery事件监听

  • ready事件
  1. 如果scripthead标签中,要加载body标签内的节点对象,要引入ready(function(){}),等HTML中所有的节点加载完毕后,再载入对象,防止在HTML加载完之前无法加载对象,相当于原生javascriptonload事件。可以编写多个ready(),从上到下依次执行。
  • 测试代码
  1. //有两种引用ready()方式
  2. //第一种写法 全名写
  3. $(document).ready(function(){
  4. console.log($("p"));
  5. });
  6. //第二种写法
  7. $(function(){
  8. console.log($("p"));
  9. });
  • 事件绑定
  1. 1、常用的事件:
  2. blur:鼠标失去焦点事件
  3. focus:鼠标聚集焦点事件
  4. mouseover:鼠标悬浮事件
  5. mouseout:鼠标离开事件
  6. keyup:键盘弹起事件
  7. keydown:键盘按下事件
  8. click:鼠标点击事件
  9. dbclick:鼠标双击事件
  10. 2、事件绑定方式有两种
  11. $('选择器').bind('事件名',function(){
  12. });(绑定单个事件)
  13. 绑定多个事件
  14. $('选择器').bind("{'事件名1':function(){},'事件名2:function(){},……}")
  15. //常用方式:
  16. $('选择器').事件名(function(){
  17. });(绑定单个事件)
  18. 绑定多个事件
  19. $('选择器').事件名1(function(){
  20. }).事件名2(function(){
  21. }).事件名3(function(){
  22. });
  • 测试代码
  1. <body>
  2. <p id="info" style="color: aqua;font-family: 宋体;font-size: 50px;"></p>
  3. <button type="button" id="btn">点击一下试一试!</button>
  4. <input type="text" name="username" id="tex"/>
  5. </body>
  6. <script type="text/javascript">
  7. $("#btn").bind('click',function(){
  8. $("#info").text("世上无难事!,只怕有心人!");
  9. });
  10. //绑定多个事件件 (常用)
  11. $("#tex").mouseout(function(){
  12. $(this).val("鼠标离开了!要注意哦!");
  13. }).mouseover(function(){
  14. $(this).val(" ");
  15. });
  16. </script>

9、JQuery异步通信方法(ajax)

  1. ajax是一种异步通信机制,向服务端请求数据,得到服务端响应,获取服务端的json字符串,然后转化成js对象,通过操作js对象,把数据渲染到页面上展示。
  2. json字符串必须要用双引号,单引号会报错!ajax会自动将json字符串转为js对象。
  3. 常用的方法有四种:
  4. $.ajax({
  5. url:'',
  6. type:'get',
  7. data:{},
  8. dataType:'json',
  9. async:true,
  10. success:function(data){},
  11. error:function(data){}
  12. });
  13. $.get('url',{请求数据},function(data){});
  14. $.post('url',{请求数据},function(data){});
  15. $.getjson('url',{请求数据},function(data){}); 只能得到json字符串数据转化为JSON对象。
  • 测试代码
  1. //ajax方式请求响应!
  2. $.ajax(
  3. {
  4. url:'data/test.text',
  5. //这个属性会自动把json文本文件转换为js对象,如果是json文件可以不设置也会自动转
  6. dataType:'json',
  7. type:'get',
  8. success:function(data){
  9. var str="";
  10. console.log(data); //自动转为js对象
  11. for(var i=0;i<data.length;i++){
  12. str+="<li>"+data[i].username+"</li><li>"+data[i].age+"</li><li>"+data[i].address+"</li>";
  13. }
  14. $("#app").append($(str));
  15. },
  16. error:function(err){
  17. console.log(err);
  18. }
  19. });
  20. //$.get()方式请求数据
  21. /* @data:响应数据
  22. @status:响应状态
  23. @xhr:响应对象
  24. 如果请求的是json文件,响应数据会自动转化为js对象
  25. 如果请求的是文本文件,响应数据是json字符串或者普通字符串。
  26. */
  27. $.get('data/test.json',{},function(data,status,xhr){
  28. console.log(data);
  29. console.log(status=='success'?'数据获取成功!':'数据获取失败!');
  30. console.log(xhr);
  31. });
  32. //$.post()方式请求数据
  33. /* @data:响应数据
  34. @status:响应状态
  35. @xhr:响应对象
  36. 如果请求的是json文件,响应数据会自动转化为js对象
  37. 如果请求的是文本文件,响应数据是json字符串。
  38. */
  39. $.post('data/test.json',{},function(data,status,xhr){
  40. console.log(data);
  41. console.log(status);
  42. console.log(xhr);
  43. });
  44. });
  45. //$.getJSON()方式请求数据
  46. /**@data:响应数据
  47. @status:响应状态
  48. @xhr:响应对象
  49. 不管请求的数据是json字符串文本文件还是JSON文件都会自动转成js对象
  50. 但是普通字符串文件,不会响应数据,如果出现没有响应数据说明请求的文件不是json字符格 式。
  51. **/
  52. $.getJSON('data/test.text',{},function(data,status,xhr){
  53. console.log(data);
  54. console.log(status);
  55. console.log(xhr);
  56. });
  57. });

JQuery&Ajax基础知识的更多相关文章

  1. Ajax基础知识 浅析(含php基础语法知识)

    1.php基础语法    后缀名为.php的文件 (1) echo   向页面中输入字符串  <?php    所有php相关代码都要写在<?php ?>这个标签之中 echo &q ...

  2. Ajax基础知识《一》

    对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...

  3. Ajax基础知识(二)

    接上一篇  Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...

  4. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  5. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  6. 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  7. 【前端】之AJAX基础知识

    AJAX 简介 AJAX(Asynchronous JavaScript and XML),异步的JavaScript和XML AJAX不是编程语言,只是一种在无需重新加载整个网页的情况下能够更新部分 ...

  8. 【jquery】基础知识

    jquery简介 1 jquery是什么 jquery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后 ...

  9. Json,Gson,Ajax基础知识

    //json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...

  10. jQuery AJAX基础

    一.JSON 定义:             JSON(JavaScript Object Notation, JS对象标记)是一种轻量级的数据交换格式.         它基于 ECMAScript ...

随机推荐

  1. Python-文件读取过程中每一行后面带一行空行。贼简单!!!!

    关键点在于,将open()函数中,参数为w的一行,格式如下: csvfile = open(data_path + '-21w.csv', 'w') 加上一个参数为newline=' ' 格式如下: ...

  2. cv2 数学基础---矩阵微分

    矩阵微分基础知识 定义 重要结论 应用 定义 (1) 向量对标量求导 矩阵对标量求导 我们可以看到上述求导过程实际上就是不同函数对变量求导,然后按照向量或者矩阵的形式排列,注意这里结果的结构应该与函数 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (121)-- 算法导论10.4 2题

    二.用go语言,给定一个n结点的二叉树,写出一个 O(n)时间的递归过程,将该树每个结点的关键字输出. 文心一言: 在Go语言中,你可以使用递归函数来遍历二叉树的所有节点,并输出每个节点的关键字.以下 ...

  4. meet

    以后就放弃csdn了,就来这里记录自己的成长,就当成一个树洞吧,开心与难过,学习与生活,进步与成长,留下时间的痕迹!冲!冲!冲!

  5. 如何写出优雅的代码?试试这些开源项目「GitHub 热点速览」

    又是一期提升开发效率的热点速览,无论是本周推特的检查 Python 语法和代码格式的 ruff,或者是 JS.TS 编译器 oxc,都是不错的工具,有意思的是它们都是 Rust 写的. 此外,还有用来 ...

  6. 2023云栖大会议程&体验攻略

    2023云栖大会倒计时1天 将围绕"计算,为了无法计算的价值" 为大家带来一场有用.有趣科技盛宴 City Walk 不如云栖Walk 今日,送上一份参会指南 给所有参会者& ...

  7. Windows系统下,GoLand的Terminal选定Git Bash作为终端,使用其上传代码时,出现中文乱码的问题

    问题描述 按照这位博主博客写的没有完全解决乱码问题博主博客 这个博主博客是我后来发现,暂时还没去验证是否可行博主博客 解决方案 notepad++直接Free Download,然后就一直下一步就无脑 ...

  8. JVM-Java虚拟机是怎么实现synchronized的?

    1. JVM的锁优化 今天我介绍了 Java 虚拟机中 synchronized 关键字的实现,按照代价由高至低可分为重量级锁.轻量级锁和偏向锁三种. 重量级锁会阻塞.唤醒请求加锁的线程.它针对的是多 ...

  9. 手撕Vuex-提取模块信息

    前言 在上一篇[手撕Vuex-模块化共享数据]文章中,已经了解了模块化,与共享数据的注意点. 那么接下来就要在我们自己的 Nuex 中实现共享数据模块化的功能.那么怎么在我们自己的 Nuex 中实现共 ...

  10. 解决Maven中90%的依赖(导包)问题

    今天给大家分享一个非常好用的技巧,这个技巧是一个组合技巧 是的,自从我开始接触了以spring为框架的项目学习后,这个maven导包老是出现问题,每次在这个上面花费好多时间,于是乎打算写一个秘籍出来. ...