jQuery02

来源:https://www.cnblogs.com/limuma/archive/2018/02/21/8457048.html
-Advertisement-
Play Games

一、使用jQuery為標簽添加屬性或者樣式 1、$("#id名").css("css屬性名","屬性值");比如:$("tbody tr:even").css("background-color","yellow"); 2、使用addClass("class名"),然後在引入的css文件中寫樣式:. ...


一、使用jQuery為標簽添加屬性或者樣式

  1、$("#id名").css("css屬性名","屬性值");比如:$("tbody tr:even").css("background-color","yellow");

  2、使用addClass("class名"),然後在引入的css文件中寫樣式:.class名{。。。};比如:$("tbody tr:even").addClass("even"); css中:.even{back-groundcolor:red;}

二、js和jQuery當前對象的區別、事件的區別

  1、js中用this來表示當前操作的對象;而jQuery中用${this}來表示當前操作的對象;

  註:這裡指的是,要使用jQuery屬性,或者使用jQuery中的方法時,就必須用${this}.屬性名;如:${this}.value;但是,jQuery代碼中也可以用this代表當前對象,前提是js和jQuery屬性或者方法不混用;

  2、jQuery中的事件去掉了前邊的on;

三、jQuery中的遍歷(遍歷集合,js中只有集合,沒有)

  

  註:關於方式二,可以遍歷對象,例如:

四、文檔處理操作: 

  1、追加內容(A、B是jQuery對象)

      apend:  A.append(B)  將B追加到A的內容的末尾處;

      appendTo: A.appendTo(B)  將A加到B內容的末尾處;

  2、刪除

    a、empty();返回值:jQuery,刪除匹配的元素集合中所有的子節點。

    

    b、remove([expr]);返回值:jQuery;從DOM中刪除所有匹配的元素。這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。但除了這個元素本身得以保留之外,其他的比如綁定的事件,附加的數據等都會被移除。

    

    c、detach([expr]);返回值:jQuery;這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。與remove()不同的是,所有綁定的事件、附加的數據等都會保留下來。

    

五、屬性操作、表單對象屬性;

  1、val()、text()、html();

  

  2、表單對象屬性:

    enabled、disabled、checked、selected,下麵以selected為例:

  

    結果只顯示出被選中的option,即獲得了被選中的option對象;

六、jQuery案例

1、省市二級聯動

  (1)步驟分析:

第一步:確定事件(change事件),在綁定的函數裡面獲取用戶選擇的省份

第二步:創建二維數組來存儲省份和城市

第三步:遍歷二維數組中的省份(與用戶選擇的省份進行比較)【使用JQ的遍歷操作】

第四步:接著遍曆數組中的城市

第五步:創建一個城市文本節點

第六步:創建option元素節點

第七步:將文本節點添加到元素節點中【使用JQ的文檔操作方法】

第八步:獲取第二個下拉列表並將option元素節點添加進去

第九步:清除第二個下拉列表的option內容

  (2)代碼實現:

 1 js代碼:
 2 <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
 3 <script>
 4     $(function(){
 5         //2.創建二維數組用於存儲省份和城市
 6         var cities = new Array(3);
 7         cities[0] = new Array("武漢市","黃岡市","襄陽市","荊州市");
 8         cities[1] = new Array("長沙市","郴州市","株洲市","岳陽市");
 9         cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市");
10         cities[3] = new Array("鄭州市","洛陽市","開封市","安陽市");
11         
12         $("#province").change(function(){
13             //10.清除第二個下拉列表的內容
14             $("#city").empty();
15             
16             //1.獲取用戶選擇的省份
17             var val = this.value;
18             //alert(val);
19             //3.遍歷二維數組中的省份
20             $.each(cities,function(i,n){
21                 //alert(i+":"+n);
22                 //4.判斷用戶選擇的省份和遍歷的省份
23                 if(val==i){
24                     //5.遍歷該省份下的所有城市
25                     $.each(cities[i], function(j,m) {
26                         //alert(m);
27                         //6.創建城市文本節點
28                         var textNode = document.createTextNode(m);
29                         //7.創建option元素節點
30                         var opEle = document.createElement("option");
31                         //8.將城市文本節點添加到option元素節點中去
32                         $(opEle).append(textNode);
33                         //9.將option元素節點追加到第二個下拉列表中去
34                         $(opEle).appendTo($("#city"));
35                     });
36                 }
37             });
38             
39         });
40     });
41 </script>
42 
43 html代碼(部分):
44 <tr>
45                             <td>籍貫</td>
46                             <td>
47                                 <select onchange="changeCity(this.value)">
48                                     <option>--請選擇--</option>
49                                     <option value="0">湖北</option>
50                                     <option value="1">湖南</option>
51                                     <option value="2">河北</option>
52                                     <option value="3">河南</option>
53                                 </select>
54                                 <select id="city">
55                                     
56                                 </select>
57                             </td>
58                         </tr>
View Code

 2、下拉列表左右選擇

    效果圖:

  (1)步驟分析:

第一步:確定事件(滑鼠單擊事件click)
第二步:獲取左側下拉列表被選中的option($(“#left option:selected”)) [假設左側select定義了一個id=left]
第三步:將獲取到的option添加到右側的下拉列表中去。(append方法的使用)

  (2)代碼實現:

 1 js代碼:
 2 <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
 3 <script>
 4     $(function(){
 5         /*1.選中單擊去右邊*/
 6         $("#selectOneToRight").click(function(){
 7             $("#left option:selected").appendTo($("#right"));
 8         });
 9         
10         /*2.單擊全部去右邊*/
11         $("#selectAllToRight").click(function(){
12             $("#left option").appendTo($("#right"));
13         });
14         
15         /*3.選中雙擊去右邊*/
16         $("#left option").dblclick(function(){
17             $("#left option:selected").appendTo($("#right"));
18         });
19     });
20 </script>
21 
22 html代碼:
23 <td>
24                     <span style="float: left;">
25                         <font color="green" face="宋體">已有商品</font><br/>
26                         <select multiple="multiple" style="width: 100px;height: 200px;" id="left">
27                             <option>IPhone6s</option>
28                             <option>小米4</option>
29                             <option>錘子T2</option>
30                         </select>
31                         <p><a href="#" style="padding-left: 20px;" id="selectOneToRight">&gt;&gt;</a></p>
32                         <p><a href="#" style="padding-left: 20px;" id="selectAllToRight">&gt;&gt;&gt;</a></p>
33                     </span>
34                     <span style="float: right;">
35                         <font color="red" face="宋體">未有商品</font><br/>
36                         <select multiple="multiple" style="width: 100px;height: 200px;" id="right">
37                             <option>三星Note3</option>
38                             <option>華為6s</option>
39                         </select>
40                         <p><a href="#" >&lt;&lt;</a></p>
41                         <p><a href="#" >&lt;&lt;&lt;</a></p>
42                     </span>
43                 </td>
View Code

七、jQuery事件總結(jQuery里的事件都是方法)

  1、ready()頁面載入事件(頁面載入順序問題,及解決方案);如:

  
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>頁面未載入執行失敗</title>
 7         <script type="text/javascript">
 8             document.getElementById("panel").onclick = function() {
 9                 alert("元素已經載入完畢 !");
10             }
11             /*
12                 執行錯誤,為什麼?
13                 因為dom還未載入完畢。
14             */
15         </script>
16     </head>
17 
18     <body>
19         <div id="panel">click me.</div>
20     </body>
21 
22 </html>
載入遇到的順序問題   
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>4-1-2</title>
 7     </head>
 8     <!--解決辦法:
 9         方式一:將JS代碼移到需要操作的html代碼後面,一般建議放到body的外面
10         方式二:將JS代碼放到一個頁面載入函數中去-->
11 
12     <body>
13         <div id="panel">click me.</div>
14         <script type="text/javascript">
15                 document.getElementById("panel").onclick = function() {
16                     alert("元素已經載入完畢 !");
17                 }
18                 /*正確執行*/
19         </script>
20     </body>
21 
22 </html>
問題的解決方案

  2、bind("click",function(){})綁定函數事件;如:

  
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>點擊展開</title>
 7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
 8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
 9         <script type="text/javascript">
10             $(function() {
11                 $("#panel h5.head").bind("click", function() {
12                     var $content = $(this).next();
13                     if($content.is(":visible")) {
14                         $content.hide();
15                     } else {
16                         $content.show();
17                     }
18                 })
19             })
20         </script>
21     </head>
22 
23     <body>
24         <div id="panel">
25             <h5 class="head">什麼是jQuery?</h5>
26             <div class="content">
27                 jQuery是繼Prototype之後又一個優秀的JavaScript庫,它是一個由 John Resig 創建於2006年1月的開源項目。jQuery憑藉簡潔的語法和跨平臺的相容性,極大地簡化了JavaScript開發人員遍歷HTML文檔、操作DOM、處理事件、執行動畫和開發Ajax。它獨特而又優雅的代碼風格改變了JavaScript程式員的設計思路和編寫程式的方式。
28             </div>
29         </div>
30     </body>
31 
32 </html>
點擊展開   
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>滑鼠滑過</title>
 7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
 8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
 9         <script type="text/javascript">
10             $(function() {
11                 $(".head").mouseover(function() {
12                     $(this).next().show();
13                 }).mouseout(function() {
14                     $(this).next().hide();
15                 })
16             })
17         </script>
18     </head>
19 
20     <body>
21         <div id="panel">
22             <h5 class="head">什麼是jQuery?</h5>
23             <div class="content">
24                 jQuery是繼Prototype之後又一個優秀的JavaScript庫,它是一個由 John Resig 創建於2006年1月的開源項目。jQuery憑藉簡潔的語法和跨平臺的相容性,極大地簡化了JavaScript開發人員遍歷HTML文檔、操作DOM、處理事件、執行動畫和開發Ajax。它獨特而又優雅的代碼風格改變了JavaScript程式員的設計思路和編寫程式的方式。
25             </div>
26         </div>
27     </body>
28 
29 </html>
滑鼠滑過

  3、next()返回後面那個緊鄰的同輩元素;如:

HTML 代碼:
<p>Hello</p><p>Hello Again</p><div><span>And Again</span></div>
jQuery 代碼:
$("p").next();
結果:返回的是每個段落的後面緊鄰的同輩元素(第一個p後面的p,第二個p對象後面的div對象):
<p>Hello Again</p><div><span>And Again</span></div>

如果只有一個p:<p>Hello Again</p><div><span>And Again</span></div>
則$("p").next();結果返回的只有<div><span>And Again</span></div>

  4、事件移除:

  
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>事件移除</title>
 7         <style type="text/css">
 8             * {
 9                 margin: 0;
10                 padding: 0;
11             }
12             
13             body {
14                 font-size: 13px;
15                 line-height: 130%;
16                 padding: 60px;
17             }
18             
19             p {
20                 width: 200px;
21                 background: #888;
22                 color: white;
23                 height: 16px;
24             }
25         </style>
26         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
27         <script type="text/javascript">
28             $(function() {
29                 $('#btn').bind("click", function() {
30                     $('#test').append("<p>我的綁定函數1</p>");
31                 });
32                 $('#delAll').click(function() {
33                     $('#btn').unbind("click");
34                 });
35             })
36         </script>
37     </head>
38 
39     <body>
40         <button id="btn">點擊我</button>
41         <div id="test"></div>
42         <button id="delAll">刪除所有事件</button>
43     </body>
44 
45 </html>
事件移除

  5、事件合成:

  
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>合成事件hover</title>
 7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
 8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
 9         <script type="text/javascript">
10             $(function() {
11                 $(".head").hover(function() {
12                     $(this).next().show();
13                 }, function() {
14                     $(this).next().hide();
15                 })
16             })
17         </script>
18     </head>
19 
20     <body>
21         <div id="panel">
22             <h5 class="head">什麼是jQuery?</h5>
23             <div class="content">
24                 jQuery是繼Prototype之後又一個優秀的JavaScript庫,它是一個由 John Resig 創建於2006年1月的開源項目。jQuery憑藉簡潔的語法和跨平臺的相容性,極大地簡化了JavaScript開發人員遍歷HTML文檔、操作DOM、處理事件、執行動畫和開發Ajax。它獨特而又優雅的代碼風格改變了JavaScript程式員的設計思路和編寫程式的方式。
25             </div>
26         </div>
27     </body>
28 
29 </html>
事件合成hover   
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>合成事件toggle</title>
 7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
 8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
 9         <script type="text/javascript">
10             $(function() {
11                 $(".head").toggle(function() {
12                     $(this).next().hide();
13                 }, function() {
14                     $(this).next().show();
15                 })
16             })
17         </script>
18     </head>
19 
20     <body>
21         <div id="panel">
22             <h5 class="head">什麼是jQuery?</h5>
23             <div class="content">
24                 jQuery是繼Prototype之後又一個優秀的JavaScript庫,它是一個由 John Resig 創建於2006年1月的開源項目。jQuery憑藉簡潔的語法和跨平臺的相容性,極大地簡化了JavaScript開發人員遍歷HTML文檔、操作DOM、處理事件、執行動畫和開發Ajax。它獨特而又優雅的代碼風格改變了JavaScript程式員的設計思路和編寫程式的方式。
25             </div>
26         </div>
27     </body>
28 
29 </html>
事件合成toggle

 

   

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用RH 系Linux,Debian系請酌情參照 安裝ftp所需包 安裝ftp包 安裝vsftpd包 註:配置文件路徑 /etc/vsftpd/ 創建ftp用戶,並付賦權 創建普通用戶(我這裡用戶名為huoher) 設置該用戶只能使用ftp而不能通過ssh或其他協議登錄進來 由於用戶是ftp的,不是 ...
  • 在實際的生產環境中,經常會用到sshkey密鑰認證實行數據分發數據等操作,還可以批量操作內網伺服器,實行免密認證進行推送分發數據。 1、環境查看 分發伺服器 節點伺服器 2、伺服器添加系統賬號 3、生成密鑰對 Generating public/private dsa key pair.Enter ...
  • SSH
    SSH簡介 SSH的主要特性 SSH的組成 SSH處理過程 SSH協議的實現工具 ssh 客戶端 ssh 伺服器 ssh 服務的最佳實踐 要使用預設埠 禁止使用protocol version 1 限制可登錄用戶 設定空閑會話超時時長 利用防火牆設置ssh 訪問策略 僅監聽特定的IP 地址 基於口 ...
  • RT ...
  • 今天linux主機中毒了,把用帝國備份王備份之後,恢復了快照到剛建主機的狀態; 哎,只怪當初沒有勤快的去做快照啊; 重新配置好後; 開始使用帝國備份王; 數據恢復之後,打開文章,提示“附加表值出錯” 百度搜索了一堆解決問題,但是解決不了我的問題,我在打開phpmyadmin,發現資料庫里的表dede ...
  • 數組有三種寫法 1. var arr=new Array(); 2. var arr=[1,2,3] 3. var arr=new Array(); arr[0]=1; 下麵我解釋如下代碼: 關鍵詞for是用來迴圈的,用法很簡單,不過用點規律 for(等於什麼;到什麼值;怎麼到那個值),上面的代碼便 ...
  • 使用jQuery實現表單校驗:(單獨拿出來介紹表單校驗,是因為內容比較多,知識點較多); 1、註:這裡使用validation插件完成對錶單數據的校驗; validate:一款優秀的表單驗證插件——validation插件 (1)特點: 內置驗證規則:擁有必填、數字、email、url和信用卡號碼等 ...
  • 第一章 一些基本概念 HTML(超文本標記語言),構建網頁的靜態結構,由一系列的DOM組成; CSS(層疊樣式表),給網頁各部分結構添加樣式; JavaScript,通過獲取DOM給靜態結構加上動作,使用戶能夠與靜態網頁進行交互; DOM,一種API(應用程式介面),通過這個介面動態的訪問和修改結構 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...