jQuery基礎知識點(下)

来源:http://www.cnblogs.com/DF-fzh/archive/2016/06/03/5554924.html
-Advertisement-
Play Games

在實際開發中,jQuery的實踐性非常強大。上一篇本人已經整理出了一部分基礎知識點,該文即是對以上的補充和擴展。 1、表單值的操作 2、屬性操作 3、特性操作 【註意】checked、selected、disabled要使用.prop()方法。 prop方法通常用來影響DOM元素的動態狀態,而不是改 ...


  在實際開發中,jQuery的實踐性非常強大。上一篇本人已經整理出了一部分基礎知識點,該文即是對以上的補充和擴展。

1、表單值的操作

1 //獲取文本框的值
2 //txt.value
3   var val = $("#txt").val(); //沒有參數表示獲取值
4 //設置文本框的值
5 //txt.value = "123123";
6   $("#txt").val("這是val設置的值");  // 有參數表示設置值

2、屬性操作

 1 //  設置屬性
 2 $("#btnSetAttr").click(function () {
 3    // getAttribute
 4           // 用法跟 css 方法完全相同
 5    // $("a").attr("title", "傳智播客");  //設置單個屬性
 6       $("a").attr({                   //設置多個屬性
 7           "title": "傳智播客",
 8           "data-abc": "自定義屬性"
 9        });
10 });
1 //  獲取屬性
2 $("#btnGetAttr").click(function () {
3     /*var a = $("a").attr("title");
4       console.log(a);*/
5     // $("a").attr("width");
6 });

3、特性操作

1 // 設置選中/不選中
2     // input.checked = true;
3     // input.checked = flase;
4 $(id/class名).attr("checked",布爾值);
5 
6      // :checkbox      作用:獲取到所有覆選框
【註意】checked、selected、disabled要使用.prop()方法。

      prop方法通常用來影響DOM元素的動態狀態,而不是改變的HTML屬性。

4、操作文本內容

 1 //    獲取內容
 2 // 文本內容:js -> innerText / textContent
 3    $("button:eq(0)").click(function () {
 4        // text() 作用:獲取或者是設置內容
 5        var txt = $("div").text();
 6        alert(txt);
 7    });
 8 //     設置文本內容
 9      $("button:eq(1)").click(function () {
10          // 設置內容,參數表示 要設置的內容
11            $("div").text("這是動態設置的內容");
12             });
13 //     獲取HTML內容
14      $("button:eq(2)").click(function () {
15           alert($("div").html());
16      });

5、高度和寬度操作

 1 //     獲取高度
 2             $("#getHeight").click(function () {
 3             /*  var h = $("div").css("height");
 4                 console.log(h); // 200px 字元串   */
 5             /*  var h = $("div").height(); // 數值
 6                 h *= 2;
 7                 console.log(h);        */
 8             });
 9 //    設置高度
10             $("#setHeight").click(function () {
11              // 參數:數值類型
12                 // $("div").height(500);
13              // 參數:字元串
14                 // $("div").height("500");
15                 $("div").height("500px");
16             });

6、坐標值操作

 1 //     獲取元素的坐標值
 2   $("button:eq(0)").click(function () {
 3      // 不傳參數表示獲取
 4      var offset = $("div").offset();
 5      console.log(offset);   // 返回值:{top: 29, left: 8}
 6             });
 7 //     設置元素的坐標值
 8    $("button:eq(1)").click(function () {
 9      // 註意:設置坐標值的時候,如果這個元素沒有定位或者定位為預設值 static
10      // 那麼offset() 會把這個元素的定位設置為:position: relative;
11        $("div").offset({
12                    top: 200,
13                     left: 400
14        });
15    });

7、bind事件綁定

1 $("button").bind("click mouseenter", function() {});
2            // 第一個參數:表示事件的名稱
3            // 第二個參數:表示事件處理函數
4 //    綁定多個事件
5 $("button").bind({
6     click: function () {}, 
7     mouseenter: function () {}
8 });
9 //     缺點:無法給動態創建出來的元素綁定事件    

8、delegate 代理綁定事件

1 // 第一個參數:表示 一個選擇器,實際要觸發事件的元素
2 // 第二個參數:表示要觸發的事件名稱
3 // 第三個參數:表示 事件處理函數
4      $("div").delegate("p", "click", function() {
5           var txt  = $(this).text();   // 獲取當前元素的內容
6       });
【說明】 ①事件是什麼時候綁定的? ——頁面載入就綁定了所有的事件 ②事件是什麼時候執行的? ——單擊事件:單擊;    mouseenter:滑鼠移上來的

9、on()綁定事件

1   // 第一個參數:表示要綁定的事件名稱
2   // 第二個參數:表示要觸發事件的元素(selector)
3   // 第三個參數:表示事件處理函數
4        $("div").on("click", ".cls", function () {
5           var txt = $(this).text(); // 獲取當前元素的內容
6        });

10、事件解綁

    1)使用un- 解綁
1     $("button:eq(1)").bind("click", function () {
2      // 解除第一個按鈕綁定的事件
3      // 不傳參數,表示所有的事件都解綁了
4      // 穿參數,表示解綁 事件的名稱
5       //$("button").eq(0).unbind("click mouseenter");
6      // $("button").eq(0).undelegate();
7 });
8 // 註意:解綁事件的時候 是解除的綁定事件的元素

      2)使用off 解綁

 1 $("#btnOff").on("click", function () {
 2   // 解除第一個按鈕的事件綁定
 3   // 參數:表示要解除事件的名稱
 4   // 如果是解除多個事件,只需要把多個事件名稱以空格分割 作為一個字元串
 5        $("#btn").off("click mouseenter");
 6   // 如果不穿參數表示把所有的事件都解除綁定
 7        $("div").off();
 8    // 解除通過 代理 的方式綁定的事件
 9    // 第一個參數表示:要解除事件的名稱
10    // 第二個參數表示:只解除通過代理方式綁定的事件
11         $("div").off("click", "**");
12  
13 });

11、事件觸發

    1)哪些屬於瀏覽器的預設行為呢?         ① a 標簽的跳轉         ② 文本框獲得焦點
1 // 觸發文本框獲得焦點事件
2 // trigger() 作用:觸發事件,同時觸發了瀏覽器的預設行為
3    $("#txt").trigger("focus");    // 參數:表示觸發事件的類型
4 // triggerHandler() 作用:只觸發事件,不觸瀏覽器的發預設行為

   2)

 1  $(function () {
 2      // target 表示觸發事件的元素 並不一定是 this
 3       // currentTarget === this
 4      $("button").on("click", function (event) {
 5           console.log(event);
 6       });
 7       $("div").on("click", function () {
 8            console.log(event);
 9        });
10  // -----------------------------------------------
11        $("div").on("click", "button", function () {
12            // 此時, target為觸發事件的按鈕
13            // currentTarget 為綁定事件的元素
14                 console.log(event);
15        });
16 });

12、事件對象

    1)阻止瀏覽器的預設行為 e.preventDefault();
    2)阻止事件冒泡
e.stopPropagation();

13、鏈式編程原理

第一步:給出一個構造函數  第二步:創建一個新的對象 第三步:調用這個構造函數中的方法
1 // 鏈式編程代碼示例
2 $(“li”).parent(“ul”).parent(“div”).siblings(“div”).children(“div”).html(“內容”);
3 鏈式編程原理:return this;
4 通常情況下,只有設置操作才能把鏈式編程延續下去。因為獲取操作的時候,會返回獲取到的相應的值,無法返回 this5 end(); // 結束當前鏈最近的一次過濾操作,並且返回匹配元素之前的一次狀態。

14、隱式迭代

1 // 設置操作
2 $(“div”).css(“color”, “red”);
3 // 獲取操作
4 $(“div”).css(“color”); // 返回第一個元素的值
5 // 隱式迭代的意思是:在方法的內部會為匹配到的所有元素進行迴圈遍歷,執行相應的方法;而不用我們再進行迴圈,簡化我們的操作,方便我們調用。
6 // 如果獲取的是多元素的值,大部分情況下返回的是第一個元素的值。

15、each方法

——有了隱式迭代,為什麼還要使用each函數遍歷? A:大部分情況下是不需要使用each方法的,因為jQuery的隱式迭代特性;如果要對每個元素做不同的處理,這時候就用到了each方法
 1    // each() 作用:進行遍歷
 2             // 參數:是一個匿名函數
 3             $("li").each(function (index, ele) {
 4                 // index: 索引號
 5                 // ele : 表示元素本身 但是它是一個dom對象
 6                 // index : 0 1 2 3 .... 9
 7                 var opacity = (index + 1) / 10;
 8                 // ele.style.opacity = opacity;
 9                 $(ele).css("opacity", opacity);
10             });

16、多庫共存

——jQuery占用了$ jQuery這兩個變數。   當在同一個頁面中引用了jQuery這個js庫,並且引用的其他庫(或者其他版本的jQuery庫)中也用到了$或者jQuery這兩個變數,那麼,要保證每個庫都能正常使用,這時候就有了多庫共存的問題。
1 var j = $.noConflict();
2 // noConflict() 作用:讓jQuery釋放對$的控制權,讓其他庫能夠使用$符號,達到多庫共存的目的。此後,只能使用jQuery來調用jQuery提供的方法

17、插件 和 製作 

    1)插件演示 第一步:把jQuery文件引進來 第二步:引jQuery的插件     2)第三方插件
1 jQuery.color.js
2 // animate()自定義動畫:不支持背景的動畫效果
3 // animate動畫支持的屬性列表
  3)如何創建jQuery插件

http://learn.jquery.com/plugins/basic-plugin-creation/

1 // 全局jQuery函數擴展方法
2 $.pluginName = function() {};
3 // jQuery對象擴展方法
4 $.fn. pluginName = function() {};

18、jQueryUI的基本使用

    1)使用場景:網站的管理後臺     2)jQuery專指由jQuery官方維護的UI(用戶介面)方向的插件

官方API:http://api.jqueryui.com/category/all/

其他教程:jQueryUI教程

    3)基本使用

1 <!--第一步:引樣式文件-->
2 <link rel="stylesheet" href="plugins/jquery-ui.css"/>
3 <!--第二步:引jQuery文件-->
4 <script src="jquery-1.12.2.js"></script>
5 <!--第三步:引jQueryUI的文件-->
6 <script src="plugins/jquery-ui.js"></script>

 


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

-Advertisement-
Play Games
更多相關文章
  • 為幫您更好的瞭解 Wijmo 產品,我們本次上線了 50個漢化的 Demo。 ...
  • 首先,很感謝各位園友對我的支持,關於bootstrap的學習總結,我會持續更新,如果有寫的不對的地方,麻煩各位給我指正出來哈。關於上篇文章,固定佈局和流式佈局很關鍵,如果還不太清楚的可以再看看我寫的http://www.cnblogs.com/jtjds/p/5547261.html 這次我們來看看 ...
  • javascript輸出: javascript通過不同的方式來顯示數據: (1)windows.alert()彈出警告框; (2)document.write()將方法寫入HTML文檔中; (3)innerHTML寫入到HTML元素; ...
  • Google的 Chrome實驗室收集了很多讓人難以置信的基於 HTML5 Canvas 和 JavaScript 的實驗項目,裡面的例子都很獨特,讓人驚嘆。我從未想過結合 HTML 和 JavaScript 能實現這麼強大的效果。今天,本文與大家分享其中9個很棒的例子,為了有更好的效果,建議在Ch ...
  • <script type="text/javascript"> //jquery判斷瀏覽器信息 $(function(){ var bro=$.browser;//獲取瀏覽器用戶代理信息; var bro_msie=bro.msie;//判斷是否為ie瀏覽器,假如為ie瀏覽器就返回:true,否則返 ...
  • 接觸javascript很久了,每次理解閉包都似是而非,最近在找Web前端的工作,所以需要把基礎夯實一下。 本文是參照了joy_lee的博客 閉包 在她這篇博客的基礎上以批註的形式力爭把我的理解闡述出來,如果有不當之處,歡迎批評指正。 《高級程式設計》上,這樣說:當在函數內部定義了其他函數時候,就創 ...
  • 渲染應該從最開始當頁面佈局被定義時就進行優化,樣式和腳本在頁面渲染中扮演著非常重要的角色。專業人員知道一些技巧以避免一些性能問題。 這篇文章不會深入研究瀏覽器的技術細節,而是提供一些通用的原則。不同瀏覽器引擎工作原理不同,這就使特定瀏覽器的學習更加複雜。 瀏覽器是怎樣渲染一個頁面的? 我們從瀏覽器渲 ...
  • 註釋還是相當清晰的 純手打,有錯請提出。致敬默默同學! ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...