亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 29
粉絲 1
評(píng)論 0
訪問(wèn)量 43613
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
jQuery 中常用的 DOM 操作以及使用 jQuery 完成跨域請(qǐng)求操作
祥子弟弟
原創(chuàng)
1351人瀏覽過(guò)

一、jQuery 中常用的 DOM 操作

使用 jQuery 庫(kù)一定不能忘了導(dǎo)入

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

1.添加元素
通過(guò)和原生 js 的對(duì)比來(lái)進(jìn)行元素添加操作

  1. // 原生方式
  2. const h2 = document.createElement("h2");
  3. h2.textContent = "原生js往頁(yè)面中添加dom元素之元素添加";
  4. document.body.appendChild(h2);
  5. document.body.insertAdjacentHTML(
  6. "afterbegin",
  7. "<h2>原生js往頁(yè)面添加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="">通過(guò)append添加的列表:${i + 1}</a></li>`;
  20. }
  21. return str;
  22. });

2.刪除元素
刪除元素的方法在 jQuery 中有很多,比較常用的有 empty()方法、remove()方法
empoty()方法
$("ol").empty():把 ol 下的的子元素包括文本節(jié)點(diǎn)全部刪除
可以通過(guò)兩張圖片來(lái)觀察 empty()方法的作用

這張圖是沒(méi)有使用 empty()方法時(shí)候的 html 文檔結(jié)構(gòu)

這張圖片是使用了 empty()方法之后的 html 文檔結(jié)構(gòu)

remove()方法: 從 dom 中把所有段落刪除,包括本身
$("ol").remove():將 ol 下的子元素包括文本節(jié)點(diǎn)全部刪除,包括 ol 本身也會(huì)刪掉
下面通過(guò)兩張圖片對(duì)比來(lái)看出 remove()的強(qiáng)大

這張圖是沒(méi)有使用 remove()方法時(shí)候的 html 文檔結(jié)構(gòu)

這張圖片是使用了 remove()方法之后的 html 文檔結(jié)構(gòu)

使用 jQuery 事件操作完成一個(gè)簡(jiǎn)單的留言板
留言板案例在以前的博客中有提到過(guò),是用原生完成的一個(gè)簡(jiǎn)單的留言板,現(xiàn)在只不過(guò)是使用 jQuery 中的一些事件以及 dom 操作方法來(lái)將原生的一些東西替代掉

  1. // 獲取元素
  2. const msg = $("textarea");
  3. const lists = $("#list");
  4. // 創(chuàng)建事件,當(dāng)內(nèi)容輸入文本框時(shí),將其打印到下邊
  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("內(nèi)容為空");
  13. msg.focus();
  14. } else {
  15. // 將留言內(nèi)容添加到列表中
  16. // 創(chuàng)建留言
  17. let olStr = `<div><li>${ev.currentTarget.value}</li><button onclick="del(this)">刪除留言</button></div>`;
  18. // 應(yīng)該將最新的信息放在第一條
  19. lists.append(olStr);
  20. // 按下回車后,清空留言板
  21. ev.currentTarget.value = null;
  22. }
  23. }
  24. });
  25. // 刪除留言
  26. function del(ele) {
  27. // DOM接口的outerHTML屬性獲取描述元素(包括其后代)的序列化HTML片段。它也可以設(shè)置為用從給定字符串解析的節(jié)點(diǎn)替換元素。
  28. // 返回時(shí),內(nèi)容包含描述元素及其后代的序列化HTML片段。
  29. return confirm("是否刪除?") ? (ele.parentNode.outerHTML = null) : false;
  30. }

二、jQuery 完成跨域請(qǐng)求操作

使用 jQuery 完成 ajax 異步請(qǐng)求操作和 jsonp 跨域操作是使用 jQuery 對(duì)象的$.get(),$.post()和$.ajax()方法完成的,其中$.get()和$.post()都是$.ajax()方法的快捷操作,他們的參數(shù)都是(url請(qǐng)求地址,qs查詢參數(shù),callback回調(diào)函數(shù)).

1.$.get(url 請(qǐng)求地址,qs 查詢參數(shù),callback 回調(diào)函數(shù))請(qǐng)求
在這里我使用的是 php 作為后端代碼,users.php 中是使用二維數(shù)組模擬數(shù)據(jù)表的查詢結(jié)果

  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. });

查詢結(jié)果

2.$.post(url 請(qǐng)求地址,qs 查詢參數(shù),callback 回調(diào)函數(shù))請(qǐng)求
post 請(qǐng)求和 get 一樣,只不過(guò)是查詢參數(shù)設(shè)置不同

  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. });

請(qǐng)求結(jié)果

使用$.ajax()方法同樣可以完成上邊兩個(gè)請(qǐng)求的操作

  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. });

請(qǐng)求結(jié)果

3. $.ajax()實(shí)現(xiàn)jsonp跨域
$.ajax()方法實(shí)現(xiàn)的跨域操作其實(shí)也是利用的 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. // 告訴跨域訪問(wèn)的服務(wù)器,前端需要返回的函數(shù)名
  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. }

跨域查詢結(jié)果

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)