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
  • 示例項目結構 在 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# ...