jQuery學習筆記1

来源:http://www.cnblogs.com/shouce/archive/2016/04/18/5403111.html
-Advertisement-
Play Games

1. jQuery入門 1.1. 優點 解決瀏覽器的相容性問題。 支持擴展,通過插件方式實現擴展,避免特性蠕變。 使用隱式迭代的技術,使方法的操作面向集合。如“.hide()” 使用方法鏈接編程方式,使多重操作集於一行。 強大的選擇符。 可靠的事件處理機制。 完善的Ajax。 行為層與結構層的分離。 ...


1.   jQuery入門

1.1.  優點

  • 解決瀏覽器的相容性問題。
  • 支持擴展,通過插件方式實現擴展,避免特性蠕變。
  • 使用隱式迭代的技術,使方法的操作面向集合。如“.hide()”
  • 使用方法鏈接編程方式,使多重操作集於一行。
  • 強大的選擇符。
  • 可靠的事件處理機制。
  • 完善的Ajax。
  • 行為層與結構層的分離。
  • 有很多使用者,文檔相當完善。
  • 開源。

1.2.  缺點

  • 不能向後相容,這是由jQuery的版本發佈特性決定

2.   選擇符

2.1.  DOM

文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展置標語言的標準編程介面。

參考網址:

http://zh.wikipedia.org/wiki/文檔對象模型

http://www.w3.org/DOM/

2.2.  工廠函數$()

  • #id,根據給定的ID匹配一個元素。

例如:查找 ID 為"myDiv"的元素。

$("#myId");

  • element,根據給定的元素名匹配所有元素。

例如:查找 div元素。

$("div");

  • .class, 根據給定的類匹配元素。

例如:查找所有類是 "myClass" 的元素。

$(".myClass");

 

HTML 代碼如下:

<div id="notMe" class="notMe">div class="notMe"</div>

<div id="myId" class="myClass">div class="myClass"</div>

2.3.  CSS選擇符

  • addClass(class),為每個匹配的元素添加指定的類名。

例如:為匹配的元素加上 'selected' 類

$("p").addClass("selected");

  • removeClass([class]),從所有匹配的元素中刪除全部或者指定的類。

例如:從匹配的元素中刪除 'selected' 類

$("p").removeClass("selected");

 

HTML 代碼如下:

<p class="first">Hello</p>

2.4.  屬性選擇符

  • [attribute],匹配包含給定屬性的元素。

例如:查找所有 含有name 屬性的 input 元素

$(" input[name]") ;

  • [attribute=value],匹配給定的屬性是某個特定值的元素。

例如:查找所有 name 屬性是 newsletter 的 input 元素

$("input[name='newsletter']");

  • [attribute^=value],匹配給定的屬性是以某些值開始的元素。

例如:查找所有 name 屬性是 newsletter 的 input 元素

$("input[name='news']");

  • [attribute!=value],匹配所有不含有指定的屬性。

例如:查找所有 name 屬性不是 newsletter 的 input 元素

$("input[name!='newsletter']");

  • [attribute$=value],匹配給定的屬性是以某些值結尾的元素。

例如:查找所有 name 屬性是以letter 結尾的 input 元素

$("input[name$='letter']");

  • [attribute*=value],匹配給定的屬性是以包含某些值的元素。

例如:查找所有 name 屬性是包含news 的 input 元素

$("input[name*='news']") ;

 

HTML 代碼如下:

<input type="checkbox" name="newsletter" value="Hot Fuzz" />

<input type="checkbox" name=" newsboy" value="Cold Fusion" />

<input type="checkbox" name="accept" value="Evil Plans" />

2.5.  自定義選擇符

2.5.1.   :odd和:even

  • :even,匹配所有索引值為偶數的元素,從 0 開始計數。

例如:查找表格的2、4、6行
$("tr:odd");

  • :odd,匹配所有索引值為奇數的元素,從 0 開始計數。

例如:查找表格的1、3、5行

$("tr:even");

 

HTML 代碼如下:

<table>

  <tr><td>Header 1</td></tr>

  <tr><td>Value 1</td></tr>

  <tr><td>Value 2</td></tr>

</table>

 

2.5.2.   基於表單的選擇符

主要有:input:text:password:radio:checkbox:submit:image:reset:button:file:hidden等元素及:enabled:disabled:checked:selected等元素屬性。

例如:即查找所有的input元素

$(":input");

2.6.  DOM遍歷方法

2.6.1.   過濾

  • filter(expr),篩選出與指定表達式匹配的元素集合。

例如:保留帶有select類的元素

$("p").filter(".selected");

2.6.2.   查找

  • next([expr]),取得一個包含匹配的元素集合中每一個元素緊鄰的後面同輩元素的元素集合。

相對應的還有nextAll([expr]),prev([expr]) ,prevAll([expr]),parent([expr]),children([expr])

例如:找到每個段落的後面緊鄰的同輩元素。

$("p").next();

2.6.3.   串聯

  • andSelf(),加入先前所選的加入當前元素中。

例如:選取所有div以及內部的p,並加上border類。

$("div").find("p").andSelf().addClass("border");

  • end(),回到最近的一個"破壞性"操作之前。

例如:選取所有的p元素,查找並選取span子元素,然後再回過來選取p元素。

$("p").find("span").end();

2.7.  訪問DOM元素

  • get(index),取得其中一個匹配的元素。

其中$(this).get(0)與$(this)[0]等價。

例如:取得所有img元素的第 1個位置上的元素。

$("img").get(0);

3.   事件

3.1.  在頁面載入後執行任務

與window.onload的區別,

  • window.onload指的是所有元素下載完後觸發,$(document).ready()指的是所有元素可以訪問後觸發。
  • window.onload一次只能保存對一個函數的引用。
  • 可以簡化為$()

 

3.2.  簡單的事件

可以用bind方法可以指定任何javascript事件,併為該事件添加一種行為。如下示例代碼:

    $(function() {

        $('#btnAdd').bind('click', function() {

            alert('click Add');

        });

})

以上代碼也可以簡寫成如下代碼:

$(function() {

        $('#btnAdd').click(function() {

            alert('click Add');

        });

})

3.3.  複合事件

  • hover(over, out),一個模仿懸停事件(滑鼠移動到一個對象上面及移出這個對象)的方法。

例如:滑鼠懸停的表格加上特定的類

$("td").hover(

  function () {

    $(this).addClass("hover");

  },

  function () {

    $(this).removeClass("hover");

  }

);

  • toggle(fn, fn2, [fn3, fn4, ...]),每次點擊後依次調用函數。

例如:對錶格的切換一個類

$("td").toggle(

  function () {

    $(this).addClass("selected");

  },

  function () {

    $(this).removeClass("selected");

  }

);

3.4.  事件的旅程

事件捕獲,事件首先交給最外層,接著交給具體的元素。

事件冒泡,事件首先發給最具體的元素,然後向上冒泡給更一般的元素。

 

3.5.  通過事件對象改變事件的旅程

3.6.  移除事件處理程式

  • unbind([type][data]) bind()的反向操作,從每一個匹配的元素中刪除綁定的事件。

如果沒有參數,則刪除所有綁定的事件。

你可以將你用bind()註冊的自定義事件取消綁定。

如果提供了事件類型作為參數,則只刪除該類型的綁定事件。

如果把在綁定時傳遞的處理函數作為第二個參數,則只有這個特定的事件處理函數會被刪除。

 

例如:將段落的click事件取消綁定

$("p").unbind( "click" )

3.7.  模仿用戶操作

  • keydown(fn),在每一個匹配元素的keydown事件中綁定一個處理函數。
  • keypress(fn),在每一個匹配元素的keypress事件中綁定一個處理函數。
  • keyup(fn),在每一個匹配元素的keyup事件中綁定一個處理函數。

 

例如:在頁面內對鍵盤按鍵做出回應,可以使用如下代碼:

$(window).keydown(function(event){

  switch(event.keyCode) {

    // ...

    // 不同的按鍵可以做不同的事情

    // 不同的瀏覽器的keycode不同

    // 更多詳細信息:     http://unixpapa.com/js/key.html

    // ...

  }

});

 

4.   效果

4.1.  修改內聯CSS

  • css(name, value),在所有匹配的元素中,設置一個樣式屬性的值。

例如:將所有段落字體設為紅色

$("p").css("color","red");

4.2.  基本的隱藏和顯示

  • show()和hide()顯示和隱藏的匹配元素。

例如:顯示所有段落

$("p").show()

4.3.  效果和速度

  • show(speed, [callback])和hide(speed, [callback]) 以優雅的動畫顯示和隱藏所有匹配的元素

例如:用緩慢的動畫將隱藏的段落顯示出來,歷時600毫秒。

$("p").show("slow")

  • fadeIn(speed, [callback])和fadeOut(speed, [callback]) 通過不透明度的變化來實現所有匹配元素的淡入和淡出效果

例如:用600毫秒緩慢的將段落淡入

$("p").fadeIn("slow");

4.4.  創建自定義動畫

  • animate(params, [duration], [easing], [callback]) ,用於創建自定義動畫的函數。

例如:讓指定元素左右移動

$("#right").click(function(){

  $(".block").animate({left: '+50px'}, "slow");

});

 

$("#left").click(function(){

  $(".block").animate({left: '-50px'}, "slow");

});

5.   DOM操作

5.1.  操作屬性

  • attr(key, value),為所有匹配的元素設置一個屬性值。
  • removeAttr(name),從每一個匹配的元素中刪除一個屬性。
  • insertBefore(content) 把所有匹配的元素插入到另一個、指定的元素元素集合的前面。
  • insertAfter(content) 把所有匹配的元素插入到另一個、指定的元素元素集合的後面。
  • wrap(html) 把所有匹配的元素用其他元素的結構化標記包裹起來。

5.2.  插入新元素

5.3.  包裝元素

例如:把所有的段落用一個新創建的div包裹起來
$("p").wrap("<div class='wrap'></div>");

5.4.  複製元素

  • clone()克隆匹配的DOM元素並且選中這些克隆的副本。

例如:克隆所有b元素(並選中這些克隆的副本),然後將它們前置到所有段落中。

$("b").clone().prependTo("p");


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

-Advertisement-
Play Games
更多相關文章
  • 最近經常有人問圖片上傳怎麼做,有哪些方案做比較好,也看到過有關於上傳圖片的做法,但是都不是最好的 今天再這裡簡單講一下上傳圖片以及圖片伺服器的大致理念 如果是個人項目或者企業小項目,僅僅只有十來號人使用的小項目,可以使用如下方案: 用戶訪問系統,使用上傳圖片功能,那麼圖片就上傳到你的當前項目所在的t ...
  • 前幾日在網上看到了一個關於Carousel插件的教學視頻,於是也順便跟著學習著做了一下。但是在做完之後發現,在別的網站上面看到類似的效果要比現在做的這個要多一個功能,也就是在底下會有一些按鈕,當滑鼠放上去或者點擊之後,Carousel就會吧跟這個按鈕相同下標的li作為第一幀顯示。既然現在這個沒有了這 ...
  • 3.4--數據類型 數據類型分為 boolean , string, object , function , number,undefinde 3.4.1--typeof 操作符 typeof 操作符在safari5,chrome7以及之前版本 會將正則表達式 返回為"function",而在其他瀏 ...
  • 前段時間用到jquery上傳插件uploadify時,始終出現系統報出 http error 302 的錯誤。 網上大量搜集信息,基本上都是說session值丟失的問題,根據網友提供的解決方案進行修改,問題並沒有解決。 因此,不排除這是解決302錯誤的解決方法之一,但是我接下來提出另一解決方案,考慮 ...
  • 摘要: artEditor.js是一款移動端的富文本編輯器,支持圖片上傳,後面會增加表情、小視頻等功能。最近有朋友反饋artEditor是否支持表單提交,當然是支持的,在未開發該功能之前,你可以像下麵這樣來實現表單提交 新功能: 新增formInputId參數,該參數表示form隱藏域的id,會將編 ...
  • 在這個展示,我們提供最好的網頁設計師10圖標生成器。這些圖標生成器是免費使用的,有些是與高級功能,將幫助你產生引人註目的和有吸引力的網頁為您的網站。 為了包起來,他們都可以自由下載,所以在。來,看看,選擇你的選擇。我們希望這個列表證明你是最好的。請隨時與你的朋友分享這份名單,也讓我們知道你對這本編輯 ...
  • 摘要: aTpl.js是一款模板插件,該插件支持ie5+,chrome等瀏覽器以及移動端瀏覽器,支持for和if語法,以及表達式。最近對aTpl.js模板插件增加了新的功能,支持字元串模板,同時增加了模板緩存功能。 項目地址:https://github.com/baixuexiyang/aTpl ...
  • 1、sessionStorage 2、localStorage 3、Database Storage 4、globalStorage 5、相容性 參考文獻 本地持久化存儲一直是本地客戶端程式優於 web 程式的一個方面。對於本地應用程式,操作系統會一共一個抽象層,用於存儲和獲取特定於應用程式的數據, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...