jQuery基礎知識點(DOM操作)

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

使用jQuery的方式來操作DOM更加的簡潔、方便,統一的調用方式方便學習並且可降低學習成本。 1、樣式屬性操作 1)設置樣式屬性操作 ①設置單個樣式: // 第一個參數表示:樣式屬性名稱 // 第二個參數表示:樣式屬性值 $(selector).css(“color”, “red”); ②設置多個 ...


  使用jQuery的方式來操作DOM更加的簡潔、方便,統一的調用方式方便學習並且可降低學習成本。

1、樣式屬性操作

    1)設置樣式屬性操作         ①設置單個樣式:
// 第一個參數表示:樣式屬性名稱
// 第二個參數表示:樣式屬性值
$(selector).css(“color”, “red”);

       ②設置多個樣式(也可以設置單個)

// 參數為 {}(對象)
$(selector).css({“color”: “red”, “font-size”: “30px”});

   2)獲取樣式屬性操作

// 參數表示要獲取的 樣式屬性名稱
$(selector).css(“font-size”);

2、類操作

    1)添加類樣式         ——addClass(className)為指定元素添加類className
$(selector).addClass(“liItem”); //此處類型不帶點,所有類操作的方法類名都不帶點
2)移除類         ——removeClass(className)為指定元素移除類className
$(selector).removeClass(“liItem”);
$(selector).removeClass(); //不指定參數,表示移除被選中元素的所有類
   3)判斷有沒有類樣式         ——hasClass(className)判斷指定元素是否包含類className
$(selector).hasClass(“liItem”);  //返回值為true或false
 4)切換類樣式         ——toggleClass(className)為指定元素切換類className,該元素有類則移除,沒有指定類則添加
$(selector).hasClass(“liItem”);
【註意】     1、操作類樣式的時候,所有的類名都不帶點(.)     2、操作的樣式非常少,那麼可以通過.css()這個方法來操作     3、操作的樣式很多,那麼要通過使用類的方式來操作     4、如果考慮以後維護方便(把CSS從js中分離出來)的話,推薦使用類的方式來操作。類比CSS書寫位置(把CSS從html中分離出來) 關鍵字簡約、粗暴、乾凈利落、直截了當

3、jQuery動畫

    3.1隱藏顯示動畫         ①show方法
// 用法一:
// 參數為數值類型,表示:執行動畫時長
/* 單位為:毫秒(ms),參數2000表示動畫執行時長為2000毫秒,即2秒鐘 */
$(selector).show(2000);
 
// 用法二:
// 參數為字元串類型,是jQuery預設的值,共有三個,分別是:slow、normal、fast
/* 跟用法一的對應關係為: */
/* slow:600ms、normal:400ms、fast:200ms */
$(selector).show(“slow”);
 
// 用法三:
// 參數一可以是數值類型或者字元串類型
// 參數二表示:動畫執行完後立即執行的回調函數
$(selector).show(2000, function() {});
 
// 用法四:
// 不帶參數,作用等同於 css(“display”, ”block”)
/* 註意:此時沒有動畫效果 */
$(selector).show();

【註意】:jQuery預設的三組動畫效果的語法幾乎一致:參數可以有兩個,第一個是動畫的執行時長,第二個是動畫執行完成後的回調函數。

    第一個參數可以是:指定字元或者毫秒數

        ②hide方法
$(selector).hide(1000); 
$(selector).hide(“slow”);
$(selector).hide(1000, function(){});
$(selector).hide();
    3.2 滑入滑出動畫         ①滑入動畫效果
$(selector).slideDown(speed,callback); 
// 註意:省略參數或者傳入不合法的字元串,那麼則使用預設值:400毫秒(同樣適用於fadeIn/slideDown/slideUp)
$(selector).slideDown();

 ②滑出

// 作用:讓元素以上拉動畫效果隱藏起來
$(selector).slideUp(speed,callback);

 ③滑入滑出切換動畫效果

$(selector).slideToggle(speed,callback);
// 參數等同與"隱藏和顯示"

4、淡入淡出動畫

       ①淡入動畫效果
// 作用:讓元素以淡淡的進入視線的方式展示出來
$(selector).fadeIn(speed, callback);

   ②淡出

// 作用:讓元素以漸漸消失的方式隱藏起來
$(selector).fadeOut(1000);

    ③淡入淡出切換動畫效果

// 作用:通過改變不透明度,切換匹配元素的顯示或隱藏狀態
$(selector).fadeToggle('fast',function(){});
// 參數等同與"隱藏和顯示"
   ④改變不透明度到某個值

——與淡入淡出的區別:淡入淡出只能控制元素的不透明度從 完全不透明 到完全透明;而fadeTo可以指定元素不透明度的具體值;並且時間參數是必需的!

//  作用:調節匹配元素的不透明度
// 用法有別於其他動畫效果
// 第一個參數表示:時長
// 第二個參數表示:不透明度值,取值範圍:0-1
$(selector).fadeTo(1000, .5); //  0全透,1全不透
 
// 第一個參數為0,此時作用相當於:.css(“opacity”, .5);
$(selector).fadeTo(0, .5);

jQuery提供的這幾個動畫效果控制的CSS屬性包括:高度、寬度、不透明度。{height:400px; width:300px; opacity:.4;}

這三個CSS屬性的共性是:屬性值只有一個,並且這個值是數值(去掉單位後)。

5、自定義動畫

註意:所有能夠執行動畫的屬性必須只有一個數字類型的值。

比如:要改變字體大小,要使用:fontSizefont-size),不要使用:font 

動畫支持的屬性:http://www.w3school.com.cn/jquery/effect_animate.asp

//  作用:執行一組CSS屬性的自定義動畫
// 第一個參數表示:要執行動畫的CSS屬性(必選)
// 第二個參數表示:執行動畫時長(可選)
// 第三個參數表示:動畫執行完後立即執行的回調函數(可選)
$(selector).animate({params},speed,callback);

6、停止動畫 stop()

6.1 作用:停止當前正在執行的動畫

6.2 為什麼要停止動畫?

如果一個以上的動畫方法在同一個元素上調用,那麼對這個元素來說,後面的動畫將被放到效果隊列中。這樣就形成了動畫隊列。(聯想:排隊進站)

動畫隊列裡面的動畫不會執行,直到第一個動畫執行完成。

// 第一個參數表示是否清空所有的後續動畫
// 第二個參數表示是否立即執行完當前正在執行的動畫
$(selector).stop(clearQueue,jumpToEnd);
// 常用方式
$(selector).stop();

解釋:

當調用stop()方法後,隊列裡面的下一個動畫將會立即開始。但是,如果參數clearQueue被設置為true,那麼隊列面剩餘的動畫就被刪除了,並且永遠也不會執行。

如果參數jumpToEnd被設置為true,那麼當前動畫會停止,但是參與動畫的每一個CSS屬性將被立即設置為它們的目標值。比如:slideUp()方法,那麼元素會立即隱藏掉。如果存在回調函數,那麼回調函數也會立即執行。

 註意:如果元素動畫還沒有執行完,此時調用sotp()方法,那麼動畫將會停止。並且動畫沒有執行完成,那麼回調函數也不會被執行。

7、jQuery節點操作

    7.1 動態創建元素
// $()函數的另外一個作用:動態創建元素
var $spanNode = $(“<span>我是一個span元素</span>”);
 7.2 添加元素(重點)

①在元素的最後一個子元素後面追加元素:append()重點

②作用:在被選元素內部的最後一個子元素(或內容)後面插入內容(頁面中存在或者創建出來的元素都可以)

如果是頁面中存在的元素,那麼調用append()後,會把這個元素從原先的位置移除,然後再插入到新的位置。

 如果是給多個目標追加一個元素,那麼append()方法的內部會複製多份這個元素,然後追加到多個目標裡面去。(最好不要這麼做)

③常用參數:htmlString 或者 jQuery對象

// 在$(selector)中追加$node
$(selector).append($node);
// 在$(selector)中追加div元素,參數為htmlString
$(selector).append('<div></div>');

(瞭解)不常用操作:(用法跟append()方法基本一致)

// appendTo()
//作用:同append(),區別是:把$(selector)追加到node中去
$(selector).appendTo(node);
 
// prepend()
//作用:在元素的第一個子元素前面追加內容或節點
$(selector).prepend(node);
 
// after()
//作用:在被選元素之後,作為兄弟元素插入內容或節點
$(selector).after(node);
 
// before()
//作用:在被選元素之前,作為兄弟元素插入內容或節點
$(selector).before(node);
7.3 html創建元素(推薦,重點)

①作用:設置或返回所選元素的html內容(包括 HTML 標記)

②設置內容的時候,如果是html標記,會動態創建元素,此時作用跟js裡面的 innerHTML屬性相同

// 動態創建元素
$(selector).html(‘<span>大方啊</span>’);
// 獲取html內容
$(selector).html();

   7.4 清空元素

// 清空指定元素的所有子元素(光桿司令)
// 沒有參數
$(selector).empty();
$(selector).html(“”);
// “自殺” 把自己(包括所有內部元素)從文檔中刪除掉
$(selector).remove();

   7.5 複製元素

//作用:複製匹配的元素
// 複製$(selector)所匹配到的元素
// 返回值為複製的新元素
$(selector).clone(); 

【總結】:推薦使用html(“<span></span>”)方法來創建元素或者html(“”)清空元素

8、操作form表單(重點)

    8.1屬性操作

①設置屬性:

// 第一個參數表示:要設置的屬性名稱
// 第二個參數表示:改屬性名稱對應的值
$(selector).attr(“title”, “小花啊”); 

②獲取屬性:

// 參數為:要獲取的屬性的名稱,改操作會返回指定屬性對應的值
$(selector).attr(“title”);  // 此時,返回指定屬性的值 

③移除屬性:

// 參數為:要移除的屬性的名稱
$(selector).removeAttr(“title”); 

【註意】:checkedselecteddisabled要使用.prop()方法。

prop方法通常用來影響DOM元素的動態狀態,而不是改變的HTML屬性。例如:inputbuttondisabled特性,以及checkboxchecked特性。

細節參考:http://api.jquery.com/prop/

    8.2 值和內容

①val()方法:

// 作用:設置或返回表單元素的值,例如:input,select,textarea的值
// 獲取匹配元素的值,只匹配第一個元素
$(selector).val();
// 設置所有匹配到的元素的值
$(selector).val(“具體值”);

②text() 方法

 

// 作用:設置或獲取匹配元素的文本內容
//獲取操作不帶參數(註意:這時候會把所有匹配到的元素內容拼接為一個字元串,不同於其他獲取操作!)
$(selector).text();
//設置操作帶參數,參數表示要設置的文本內容
$(selector).text(“我是內容”);

 

9、尺寸位置操作

    9.1 高度和寬度操作

①高度操作height() :

// 作用:設置或獲取匹配元素的高度值
//帶參數表示設置高度
$(selector).height(200);
//不帶參數獲取高度
$(selector).height();

②寬度操作width() :

// 作用:設置或獲取匹配元素的寬度值
//帶參數表示設置寬度
//不帶參數獲取寬度
$(selector).width(200);

css()獲取高度和height獲取高度的區別?

A:方式一,返回值number類型,例如:30
  方式二,返回值string類型,例如:“30px”   區別:方式一常用在參與數學計算的情況。  

    9.2 坐標值操作

①offset()

//  作用:獲取或設置元素相對於文檔左上角的位置
// 無參數表示獲取,返回值為:{left:num, top:num},值是相對於document的位置
$(selector).offset();
// 有參數表示設置,參數推薦使用數值類型
$(selector).offset({left:100, top: 150});

註意點:設置offset後,如果元素沒有定位(預設值:static),則被修改為relative

②scrollTop()

、、作用:獲取或者設置元素垂直方向滾動的位置
// 無參數表示獲取偏移
$(selector).scrollTop();
 
// 有參數表示設置偏移,參數為數值類型
$(selector).scrollTop(100); 

③scrollLeft()

// 作用:獲取或者設置元素水平方向滾動的位置
$(selector).scrollLeft(100);

scrollTop的理解:

垂直滾動條位置 是可滾動區域 在 可視區域上方的 被隱藏區域的高度。

如果滾動條在最上方沒有滾動 或者 當前元素沒有出現滾動條,那麼這個距離為0

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

-Advertisement-
Play Games
更多相關文章
  • 閱讀文章時,如果某個段落已經傳達了關鍵信息,我們可能就不會逐字逐句地將文章讀完,因為我們已經知道了這篇文章的核心內容。 與此類似,如果方法中某些條件判斷可以得到結果,我們應該儘快返回該結果。 儘快返回可以帶來三個好處:1. 節省閱讀代碼的時間 2. 避免執行無效的邏輯 3. 增強代碼的可讀性 ...
  • 在學習java的過程中,我們肯定聽到過設計模式這名詞,在行業中有這麼一句話,若您能熟練的掌握23種設計模式,那麼你便是大牛! 好了,廢話不多說,今天我跟大家分享一下23種設計模式之一的 模板方法 設計模式 首先我們要知道什麼是模板方法設計模式? 測試結果如圖 ...
  • 在自然語言中,雙重否定表示肯定。但是在程式中,雙重否定會降低代碼的可讀性,使程式不易理解,容易產生錯覺。 人通常是用“正向思維”去理解一件事情的,使用雙重否定的判斷,需要開發者以“逆向思維”的方式去理解它的含義。 另外,在寫程式時,"!"符號很容易被疏忽和遺漏,一不小心則會編寫出錯誤的代碼,從而產生... ...
  • 前言: 在總結okHttp的時候,為了管理網路請求使用到了單例模式,晚上實在沒啥狀態了,靜下心來學習總結一下使用頻率最高的設計模式單例模式。 單例模式: 單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 單例特點: 單例類只能有一個實例。 單例類必須自己創建自己的唯一實例。 ...
  • 單例模式是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個實例。 《設計模式》對此的定義:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 單例模式有三個要點:一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須自行向整 ...
  • 前言: 前面學習了建造者設計模式,接下來學習一下Retrofit中使用的另外一個設計模式,工廠設計模式!!!裡面採用工廠模式使得數據轉換得到完全解耦,工廠模式的好處用到了極致,如此好的設計模式我們怎能不學習一下。 工廠模式: 工廠模式主要是為創建對象提供過渡介面,以便將創建對象的具體過程屏蔽隔離起來 ...
  • 隨著3G的普及,越來越多的人使用手機上網。 移動設備正超過桌面設備,成為訪問互聯網的最常見終端。於是,網頁設計師不得不面對一個難題:如何才能在不同大小的設備上呈現同樣的網頁? 手機的屏幕比較小,寬度通常在600像素以下;PC的屏幕寬度,一般都在1000像素以上(目前主流寬度是1366×768),有的 ...
  • 數據類型Number JavaScript不區分整數和浮點數,統一用Number表示,以下都是合法的Number類型: 實際上,JavaScript允許對任意數據類型做比較: 要特別註意相等運算符==。JavaScript在設計時,有兩種比較運算符: 第一種是==比較,它會自動轉換數據類型再比較,很 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...