博主信息
祥子弟弟
博文
29
粉丝
1
评论
0
访问量
9624
积分:0
P豆:58

jQuery 中常用的 DOM 操作以及使用 jQuery 完成跨域请求操作

2021年02月08日 23:25:52阅读数:399博客 / 祥子弟弟/ javascript

一、jQuery 中常用的 DOM 操作

使用 jQuery 库一定不能忘了导入

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

1.添加元素
通过和原生 js 的对比来进行元素添加操作

  1. // 原生方式
  2. const h2 = document.createElement("h2");
  3. h2.textContent = "原生js往页面中添加dom元素之元素添加";
  4. document.body.appendChild(h2);
  5. document.body.insertAdjacentHTML(
  6. "afterbegin",
  7. "<h2>原生js往页面添加dom元素之html字符串添加</h2>"
  8. );
  9. // jQuery方式
  10. $("<h2>jQuery添加dom元素</h2>").appendTo(document.body);
  11. $("<h2>").text("jQuery添加dom元素之子元素添加").appendTo(document.body);
  12. // 子元素.appendTo(父元素)
  13. $("body").append("<h2>jQuery添加dom元素之父元素添加</h2>");
  14. // 父元素.append(子元素)
  15. $("body").append("<ol></ol>");
  16. $("ol").append(() => {
  17. let str = "";
  18. for (let i = 0; i < 5; i++) {
  19. str += `<li><a href="">通过append添加的列表:${i + 1}</a></li>`;
  20. }
  21. return str;
  22. });

2.删除元素
删除元素的方法在 jQuery 中有很多,比较常用的有 empty()方法、remove()方法
empoty()方法
$("ol").empty():把 ol 下的的子元素包括文本节点全部删除
可以通过两张图片来观察 empty()方法的作用

这张图是没有使用 empty()方法时候的 html 文档结构

这张图片是使用了 empty()方法之后的 html 文档结构

remove()方法: 从 dom 中把所有段落删除,包括本身
$("ol").remove():将 ol 下的子元素包括文本节点全部删除,包括 ol 本身也会删掉
下面通过两张图片对比来看出 remove()的强大

这张图是没有使用 remove()方法时候的 html 文档结构

这张图片是使用了 remove()方法之后的 html 文档结构

使用 jQuery 事件操作完成一个简单的留言板
留言板案例在以前的博客中有提到过,是用原生完成的一个简单的留言板,现在只不过是使用 jQuery 中的一些事件以及 dom 操作方法来将原生的一些东西替代掉

  1. // 获取元素
  2. const msg = $("textarea");
  3. const lists = $("#list");
  4. // 创建事件,当内容输入文本框时,将其打印到下边
  5. msg.keydown((ev) => {
  6. // 键盘事件中的key属性,表示按下的键名
  7. // console.log(ev.key);
  8. if (ev.key === "Enter") {
  9. // 非空判断
  10. // console.log(ev.currentTarget.value);
  11. if (ev.currentTarget.value.length === 0) {
  12. alert("内容为空");
  13. msg.focus();
  14. } else {
  15. // 将留言内容添加到列表中
  16. // 创建留言
  17. let olStr = `<div><li>${ev.currentTarget.value}</li><button onclick="del(this)">删除留言</button></div>`;
  18. // 应该将最新的信息放在第一条
  19. lists.append(olStr);
  20. // 按下回车后,清空留言板
  21. ev.currentTarget.value = null;
  22. }
  23. }
  24. });
  25. // 删除留言
  26. function del(ele) {
  27. // DOM接口的outerHTML属性获取描述元素(包括其后代)的序列化HTML片段。它也可以设置为用从给定字符串解析的节点替换元素。
  28. // 返回时,内容包含描述元素及其后代的序列化HTML片段。
  29. return confirm("是否删除?") ? (ele.parentNode.outerHTML = null) : false;
  30. }

二、jQuery 完成跨域请求操作

使用 jQuery 完成 ajax 异步请求操作和 jsonp 跨域操作是使用 jQuery 对象的$.get(),$.post()和$.ajax()方法完成的,其中$.get()和$.post()都是$.ajax()方法的快捷操作,他们的参数都是(url请求地址,qs查询参数,callback回调函数).

1.$.get(url 请求地址,qs 查询参数,callback 回调函数)请求
在这里我使用的是 php 作为后端代码,users.php 中是使用二维数组模拟数据表的查询结果

  1. $(".get").click(function (ev) {
  2. $.get("users.php", { id: 2 }, function (data) {
  3. // console.log(data);
  4. // console.log(ev.target);
  5. $(ev.target).after("<div></div>").next().html(data);
  6. });
  7. });

查询结果

2.$.post(url 请求地址,qs 查询参数,callback 回调函数)请求
post 请求和 get 一样,只不过是查询参数设置不同

  1. $(".post").click(function (ev) {
  2. $.post("users.php", { id: 3 }, function (data) {
  3. // console.log(data);
  4. // console.log(ev.target);
  5. $(ev.target).after("<div></div>").next().html(data);
  6. });
  7. });

请求结果

使用$.ajax()方法同样可以完成上边两个请求的操作

  1. $(".post").click(function (ev) {
  2. $.ajax({
  3. type: "post",
  4. url: "users.php",
  5. data: { id: 1 },
  6. dataType: "html",
  7. success: function (data) {
  8. $(ev.target).after("<div></div>").next().html(data);
  9. },
  10. });
  11. });

请求结果

3. $.ajax()实现jsonp跨域
$.ajax()方法实现的跨域操作其实也是利用的 jsonp 的原理,和原生js中的差不多。

  1. $(".jsonp").click(function (ev) {
  2. $.ajax({
  3. type: "get",
  4. url: "http://world.io/text.php?id=2&jsonp=?",
  5. dataType: "jsonp",
  6. // 告诉跨域访问的服务器,前端需要返回的函数名
  7. jsonpCallback: "show",
  8. });
  9. });
  10. function show(data) {
  11. console.log(data);
  12. $(".jsonp").after("<div></div>").next().html(`${data.name}:(${data.email})`);
  13. }

跨域查询结果

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 理论上说应程序里指令可央处理器(CPU)指令集于向系统特定服务这两类。指令是指告诉计算机从事某一特殊运算代码,一条指令通码和地址码组