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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...