jQuery入门
jQuery入门
1、基础语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(selector).action()
- 美元符号定义 jQuery
- 选择符(selector)"查询"和"查找" HTML 元素
- jQuery 的 action() 执行对元素的操作
实例:
- $(this).hide() - 隐藏当前元素
- $("p").hide() - 隐藏所有
<p>
元素 - $("p.test").hide() - 隐藏所有 class="test" 的
元素
- $("#test").hide() - 隐藏 id="test" 的元素
jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合,因此选择页面中元素时使用css选择器选择
2、文档就绪事件
类似于原生JS中的window.onload
,作用是当文档完全加载完毕后再运行jQuery代码
$(document).ready(function(){ // 开始写 jQuery 代码... }); // 简写 $(function() { })
jQuery 入口函数与 JavaScript 入口函数window.onload
的区别:
- jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行,可以执行多次
- JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行,只能执行一次,如果执行多次,会覆盖前面前面执行
3、jQuery选择器
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
jQuery 中所有选择器都以美元符号开头:$()。
4、jQuery事件
在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。
$("#mybutton").click(function(){ // 动作触发后执行的代码!! }); // 注意:绑定事件不是等号赋值,而是以参数形式传入
5、jQuery捕获
jQuery 拥有可操作 HTML 元素和属性的强大方法。
获得内容 - text()、html() 以及 val()
- text() - 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容(包括 HTML 标签)
- val() - 设置或返回表单字段的值
获取属性 - attr()
jQuery attr() 方法用于获取属性值。
用户名<input type="text" id="user"><br> 密码<input type="password" id="pass"> <script> $(function() { $("#user").blur(function() { console.log($("#user").attr("type")) // text console.log($("#user").val()) // xxx }) }) </script>
设置css样式
$("button").click(function(){ $("p").css("color","red"); });
6、添加元素
向HTML中添加元素
- append() - 在被选元素的结尾插入内容
- prepend() - 在被选元素的开头插入内容
- after() - 在被选元素之后插入内容
- before() - 在被选元素之前插入内容
append/prepend 是在选择元素内部嵌入。
after/before 是在元素外面追加。
append
<p> <span class="s1">s1</span> </p> <script> $("p").append('<span class="s2">s2</span>'); </script>
结果
<p> <span class="s1">s1</span> <span class="s2">s2</span> </p>
After
<p> <span class="s1">s1</span> </p> <script> $("p").after('<span class="s2">s2</span>'); </script>
结果
<p> <span class="s1">s1</span> </p> <span class="s2">s2</span>
7、删除元素
如需删除元素和内容,一般可使用以下两个 jQuery 方法:
- remove() - 删除被选元素(及其子元素)
- empty() - 从被选元素中删除子元素
jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
该参数可以是任何 jQuery 选择器的语法。
下面的例子删除 class="italic" 的所有 <p>
元素:
$("p").remove(".italic")
8、Ajax
8.1、背景
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
-
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
-
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
-
实例:当您在搜索框输入关键字时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。
-
传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网页。
-
使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新。
-
使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
8.2、利用Ajax可以做什么?
- 注册时,输入用户名自动检测用户是否已经存在。
- 登陆时,提示用户名密码错误
- 删除数据行时,将行ID发送到后台,后台在数据库中删除,数据库删除成功后,在页面DOM中将数据行也删除。
- 等等……
8.3、发送异步请求
- Ajax的核心是XMLHttpRequest对象(XHR)。XHR为向服务器发送请求和解析服务器响应提供了接口。能够以异步方式从服务器获取新数据。
- jQuery 提供多个与 AJAX 有关的方法。
- 通过 jQuery AJAX 方法,能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON – 同时您能够把这些外部数据直接载入网页的被选元素中。
- jQuery Ajax本质就是 XMLHttpRequest,对他进行了封装,方便调用!
jQuery.ajax(...) // 通用请求 jQuery.get(...) // get请求 jQuery.post(...) // post请求 部分参数: url:请求地址 type:请求方式,GET、POST(1.9.0之后用method) headers:请求头 data:要发送的数据 contentType:即将发送信息至服务器的内容编码类型(默认: "application/x-www-form-urlencoded; charset=UTF-8") async:是否异步 timeout:设置请求超时时间(毫秒) beforeSend:发送请求前执行的函数(全局) complete:完成之后执行的回调函数(全局) success:成功之后执行的回调函数(全局) error:失败之后执行的回调函数(全局) accepts:通过请求头发送给服务器,告诉服务器当前客户端课接受的数据类型 dataType:将服务器端返回的数据转换成指定类型 "xml": 将服务器端返回的内容转换成xml格式 "text": 将服务器端返回的内容转换成普通文本格式 "html": 将服务器端返回的内容转换成普通文本格式,在插入DOM中时,如果包含JavaScript标签,则会尝试去执行。 "script": 尝试将返回值当作JavaScript去执行,然后再将服务器端返回的内容转换成普通文本格式 "json": 将服务器端返回的内容转换成相应的JavaScript对象 "jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数
一般只用给两个参数:url和success,参数有两种传入方式,一种是JSON格式,一种是普通参数
$.post({ url:"", success:function(data) { } }) {} $.post("[[@{/list}]]",function (data) {}
4、Demo01请求后端数据
1、编写控制器方法
@Controller public class AjaxController { @RequestMapping("/a1") public void ajax1(String name , HttpServletResponse response) throws IOException { if ("admin".equals(name)){ response.getWriter().print("true"); }else{ response.getWriter().print("false"); } } }
2、导入jQuery
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
3、编写前端代码
<input type="button" id="show" value="显示所有书籍"> <table> <tr> <th>id</th> <th>书名</th> <th>价格</th> <th>数量</th> <th>类型</th> </tr> <tbody id="tbodyid"> </tbody> </table> <script> $(function () { $("#show").click(function () { $.post("[[@{/list}]]",function (resp) { console.log(resp) var html=""; for (var i = 0; i <resp.length ; i++) { html += "<tr>"; html += "<td>" + resp[i].bookId + "</td>" html += "<td>" + resp[i].bookName + "</td>" html += "<td>" + resp[i].bookPrice + "</td>" html += "<td>" + resp[i].bookCount + "</td>" html += "<td>" + resp[i].bookType + "</td>" html += "</tr>" } console.log(html) $("#tbodyid").html(html) }); }) }) </script>
5、Demo02注册验证用户名
用户名<input type="text" id="user"><span></span><br> <input type="button" id="mb" value="提交"> <script> $(function () { $("#mb").click(function () { $.post("[[@{/register}]]", {"name": $("#user").val()}, function (data) { var sp = $("span") if("ok" == data) { sp.html(data) sp.attr("style","color:green") } else { sp.html(data) sp.attr("style","color:red") } }) }) }) </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】