目錄
前面的話
元素相關
資料相關
類型偵測
其他
首頁 web前端 js教程 jQuery常用工具方法

jQuery常用工具方法

Jun 26, 2017 pm 02:32 PM
jquery 常用工具 方法

前面的話

  jQuery提供一些與元素無關的工具方法,不必選取元素,就可以直接使用這些方法。如果理解原生javascript的繼承原理,那麼就能理解工具方法的實質內容。它是定義在jQuery建構函式上的方法,即jQuery.method(),所以可以直接使用。而那些操作元素的方法,就是定義在建構函式的prototype物件上的方法,也就是jQuery.prototype.method(),所以必須產生實例(即選取元素)後使用。把工具方法理解成像javascript原生函數那樣可以直接使用的方法就行了。以下將詳細介紹jQuery的常用工具方法

 

元素相關

#【each()】

  它是一個通用的迭代函數,可以用來無縫迭代物件和數組。數組和類似數組的物件透過一個長度屬性(如一個函數的參數物件)來迭代數字索引,從0到 length - 1。其他物件透過其屬性名稱進行迭代

jQuery.each( collection, callback(indexInArray, valueOfElement) )
登入後複製

  jQuery.each()函數和 jQuery(selector).each()不一樣,後者專門用來遍歷一個jQuery物件。 jQuery.each()函數可用於迭代任何集合,無論是「名稱/值」物件(JavaScript物件)或陣列。在迭代數組的情況下,回呼函數每次傳遞一個數組索引和對應的數組值作為參數。 (該值也可以透過存取this關鍵字得到,但是JavaScript將始終將this值作為一個Object ,即使它是一個簡單的字串或數字值。)該方法傳回其第一個參數,這是迭代的對象

$.each( ['a','b','c'], function(index,value){//Index #0: a//Index #1: b//Index #2: cconsole.log( "Index #" + index + ": " + value );
});
登入後複製
$.each( { name: "John", lang: "JS" }, function(index,value){//Index #name: John//Index #lang: JSconsole.log( "Index #" + index + ": " + value );
});
登入後複製

【contains()】

   檢視一個DOM元素是另一個DOM元素的後代

jQuery.contains( container, contained )
登入後複製
$.contains( document.documentElement, document.body ); // true
登入後複製

【extend()】

  將兩個或更多物件的內容合併到第一個物件

jQuery.extend( target [, object1 ] [, objectN ] )

target: Object 一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。
object1: Object 一个对象,它包含额外的属性合并到第一个参数
objectN: Object 包含额外的属性合并到第一个参数
登入後複製
#
$.extend({}, object1, object2);
登入後複製
jQuery.extend( [deep ], target, object1 [, objectN ] )

deep: Boolean 如果是true,合并成为递归(又叫做深拷贝)。
target: Object 对象扩展。这将接收新的属性。
object1: Object 一个对象,它包含额外的属性合并到第一个参数.
objectN: Object 包含额外的属性合并到第一个参数
登入後複製
$.extend(true, object1, object2);
登入後複製

 

資料相關

【data()】

  儲存任意數據到指定的元素並且/或傳回設定的值

jQuery.data( element )
登入後複製
element:Element 要关联数据的DOM对象
key: String 存储的数据名
value:Object 新数据值
登入後複製
$.data(document.body, 'foo', 52);
$.data(document.body, 'bar', 'test');
console.log($.data( document.body, 'foo' ));//52console.log($.data( document.body ));//{foo: 52, bar: "test"}
登入後複製

【removeData()】

#  刪除一個先前儲存的資料片段

jQuery.removeData( element [, name ] )
登入後複製
var div = $("div");
$.data(div, "test1", "VALUE-1");
$.data(div, "test2", "VALUE-2");
console.log($.data(div));//{test1: "VALUE-1", test2: "VALUE-2"}$.removeData(div, "test1");
console.log($.data(div));//{test2: "VALUE-2"}
登入後複製

 

類型偵測

##【type()】

#  type()方法用來偵測javascript物件的型別

  如果物件是undefined或null,則傳回對應的「undefined」或「null」

jQuery.type( undefined ) === "undefined"jQuery.type() === "undefined"jQuery.type( window.notDefined ) === "undefined"jQuery.type( null ) === "null"
登入後複製
##  如果物件有一個內部的[[Class]]和一個瀏覽器的內建物件的[[Class]] 相同,傳回對應的[[Class]] 名字

jQuery.type( true ) === "boolean"jQuery.type( 3 ) === "number"jQuery.type( "test" ) === "string"jQuery.type( function(){} ) === "function"jQuery.type( [] ) === "array"jQuery.type( new Date() ) === "date"jQuery.type( new Error() ) === "error" jQuery.type( /test/ ) === "regexp"
登入後複製
  所以該方法類似於原生javascript中經過封裝的Object.prototype.toString()方法

function type(obj){return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();
}
登入後複製
【isArray()】

  在原生javascript中,陣列偵測是一個經典問題,當出現網頁中包含多個框架的場景時,數組檢測就不再容易

  jQuery提供了isArray()方法用來檢測數組

console.log($.isArray([]));//true
登入後複製
【isFunction()】

  isFunction()方法用來偵測傳入的參數是否為函數

console.log($.isFunction(function(){}));//true
登入後複製
  如果使用原生javascript,使用typeof即可實作

console.log(typeof function(){});//"function"
登入後複製
【isNumeric()】

  isNumeric()方法用來偵測傳入的參數是否為數字

  [注意]參數為純數字或數字字串都可以

$.isNumeric("-10");  // true$.isNumeric(-10);  // true
登入後複製
  如果使用原生javascript,使用typeof即可實現,但結果稍有不同

console.log(typeof 10);//"number"console.log(typeof '10');//"string"
登入後複製
#【isEmptyObject( )】

  isEmptyObject()方法用來偵測一個物件是否為空物件

jQuery.isEmptyObject({}) // truejQuery.isEmptyObject({ foo: "bar" }) // false
登入後複製
【isPlainObject()】

#  isPlainObject()方法用來偵測一個物件是否是原生對象,也就是透過"{}" 或"new Object" 建立的物件

console.log($.isPlainObject({}));//trueconsole.log($.isPlainObject(document.documentElement));//falseconsole.log($.isPlainObject(new Boolean(true)));//falseconsole.log($.isPlainObject(true));//false
登入後複製
 

陣列相關

################################### 【inArray()】######  inArray(value, array [, fromIndex ])方法類似於原生javascript的indexOf()方法,沒有找到匹配元素時它返回-1。如果陣列第一個元素符合參數,那麼$.inArray()回傳0######  參數fromIndex就是陣列索引值,表示從哪裡在開始尋找。預設值是0######
var arr = [1,2,3,'1','2','3'];
console.log(arr.indexOf('2'));//4console.log(arr.indexOf(3));//2console.log(arr.indexOf(0));//-1var arr = [1,2,3,'1','2','3'];
console.log($.inArray('2',arr));//4console.log($.inArray(3,arr));//2console.log($.inArray(0,arr));//-1
登入後複製
######【makeArray()】######  makeArray()方法用來將一個類別陣列物件轉換為真正的javascript陣列###### #
console.log($.isArray({ 0: 'a', 1: 'b', length: 2 }));//falseconsole.log($.isArray($.makeArray({ 0: 'a', 1: 'b', length: 2 })));//true
登入後複製
######  如果使用原生javascript,可以使用slice()方法將類別數組物件變成真正的陣列######
var arr = Array.prototype.slice.call(arrayLike);

Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })// ['a', 'b']Array.prototype.slice.call(document.querySelectorAll("div"));
Array.prototype.slice.call(arguments);
登入後複製
###

【unique()】

  unique()方法用于数组去重

var $arr = [document.body,document.body];
console.log($.unique($arr));//[body]var $arr = [1,2,1];
console.log($.unique($arr));//[2,1]
登入後複製

  使用原生javascript实现如下

Array.prototype.norepeat = function(){var result = [];for(var i = 0; i < this.length; i++){if(result.indexOf(this[i]) == -1){
            result.push(this[i]);
        }
    }return result;
}
登入後複製
var arr = [1,2,1];
console.log(arr.norepeat());//[1,2]var arr = [document.body,document.body];
console.log(arr.norepeat());//[body]
登入後複製

【grep()】

  查找满足过滤函数的数组元素。原始数组不受影响

jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )
array: Array 用于查询元素的数组。function: Function() 该函数来处理每项元素的比对。第一个参数是正在被检查的数组的元素,第二个参数是该元素的索引值。该函数应返回一个布尔值。this将是全局的window对象。
invert: Boolean 如果“invert”为false,或没有提供,函数返回一个“callback”中返回true的所有元素组成的数组,。如果“invert”为true,函数返回一个“callback”中返回false的所有元素组成的数组。
登入後複製

  $.grep()方法会删除数组必要的元素,以使所有剩余元素通过过滤函数的检查。该测试是一个函数传递一个数组元素和该数组内这个的索引值。只有当测试返回true,该数组元素将返回到结果数组中。

  该过滤器的函数将被传递两个参数:当前正在被检查的数组中的元素,及该元素的索引值。该过滤器函数必须返回'true'以包含在结果数组项

var result = $.grep( [0,1,2], function(n,i){   return n > 0;
 });
console.log(result);//[1, 2]
登入後複製
var result = $.grep( [0,1,2], function(n,i){   return n > 0;
 },true);
console.log(result);//[0]
登入後複製

【merge()】

  合并两个数组内容到第一个数组

jQuery.merge( first, second )
登入後複製
console.log($.merge( [0,1,2], [2,3,4] ));//[0, 1, 2, 2, 3, 4]
登入後複製

 

其他

【proxy()】

  proxy()方法接受一个函数,然后返回一个新函数,并且这个新函数使用指定的this

  proxy()方法类似于bind(),但并不相同。区别在于,bind()方法是改变原函数的this指向,而proxy()方法是新建一个函数,并使用参数中的this指向,原函数的this指向并无变化

var a = 0;function foo(){
    console.log(this.a);
}var obj = {
    a:2};
foo();//0$.proxy(foo,obj)();//2foo();//0
登入後複製

  proxy()方法支持多种参数传递方式

function foo(a,b){
    console.log(a+b);   
}

$.proxy(foo,document)(1,2);//3$.proxy(foo,document,1,2)();//3$.proxy(foo,document,1)(2);//3
登入後複製

  在绑定事件时一定要合理使用proxy()方法的参数传递方式,否则事件还没有发生,可能函数已经被调用了

$(document).click($.proxy(foo,window,1,2))
登入後複製

【trim()】

  jQuery.trim()函数用于去除字符串两端的空白字符

  这个函数很简单,没有多余的参数用法

console.log($.trim("    hello, how are you?    "));//'hello, how are you?'
登入後複製

 【noop()】

  一个空函数

jQuery.noop() 此方法不接受任何参数
登入後複製

  当你仅仅想要传递一个空函数的时候,就用他吧

  这对一些插件作者很有用,当插件提供了一个可选的回调函数接口,那么如果调用的时候没有传递这个回调函数,就用jQuery.noop来代替执行

【now()】

  返回一个数字,表示当前时间

jQuery.now() 这个方法不接受任何参数
登入後複製

  $.now()方法是表达式(new Date).getTime()返回数值的一个简写

【parseHTML()】

  将字符串解析到一个DOM节点的数组中

jQuery.parseHTML( data [, context ] [, keepScripts ] )
data : String 用来解析的HTML字符串
context (默认: document): Element DOM元素的上下文,在这个上下文中将创建的HTML片段。
keepScripts (默认: false): Boolean 一个布尔值,表明是否在传递的HTML字符串中包含脚本。
登入後複製

  jQuery.parseHTML 使用原生的DOM元素的创建函数将字符串转换为一组DOM元素,然后,可以插入到文档中。

  默认情况下,如果没有指定或给定null or undefinedcontext是当前的document。如果HTML被用在另一个document中,比如一个iframe,该frame的文件可以使用

var result = $.parseHTML( "hello, my name is jQuery");
$('div').append(result);
登入後複製

【parseJSON()】

  接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript 对象

jQuery.parseJSON( json )
登入後複製
var obj = jQuery.parseJSON('{"name":"John"}');
console.log(obj.name === "John");//true
登入後複製

 

以上是jQuery常用工具方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

怎麼刪除微信好友?刪除微信好友的方法 怎麼刪除微信好友?刪除微信好友的方法 Mar 04, 2024 am 11:10 AM

微信是主流的聊天工具之一,我們可以透過微信認識新的朋友,聯絡老的朋友,維繫朋友之間的友誼。正如天下沒有不散的宴席,人與人之間的相處難免會發生意見不合的時候。當一個人極度影響你的情緒,或是在相處的時候發現三觀不合,沒辦法再繼續溝通,那麼我們可能需要刪除微信好友的方法。怎麼刪除微信好友?刪除微信好友的方法第一步:在微信主介面輕觸【通訊錄】;第二步:點選對應要刪除的好友,進入【詳細資料】;第三步:點選右上角【...】;第四步:點選下方【刪除】即可;第五步:了解後頁面提示後,點選【刪除聯絡人】即可;溫馨

怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 Mar 28, 2024 pm 12:50 PM

番茄小說是一款非常熱門的小說閱讀軟體,我們在番茄小說中經常會有新的小說和漫畫可以去閱讀,每一本小說和漫畫都很有意思,很多小伙伴也想著要去寫小說來賺取賺取零用錢,在把自己想要寫的小說內容編輯成文字,那麼我們要怎麼樣在這裡面去寫小說呢?小伙伴們都不知道,那就讓我們一起到本站本站中花點時間來看寫小說的方法介紹。分享番茄小說寫小說方法教學  1、先在手機上打開番茄免費小說app,點擊個人中心——作家中心  2、跳到番茄作家助手頁面——點擊創建新書在小說的結

七彩虹主機板怎麼進入bios?教你兩種方法 七彩虹主機板怎麼進入bios?教你兩種方法 Mar 13, 2024 pm 06:01 PM

  七彩虹主機板在中國國內市場享有較高的知名度和市場佔有率,但是有些七彩虹主機板的用戶還不清楚怎麼進入bios進行設定呢?針對這一情況,小編專門為大家帶來了兩種進入七彩虹主機板bios的方法,快來試試吧!方法一:使用u盤啟動快捷鍵直接進入u盤裝系統七彩虹主機板一鍵啟動u盤的快捷鍵是ESC或F11,首先使用黑鯊裝機大師製作一個黑鯊U盤啟動盤,然後開啟電腦,當看到開機畫面的時候,連續按下鍵盤上的ESC或F11鍵以後將會進入到一個啟動項順序選擇的窗口,將遊標移到顯示“USB”的地方,然

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) 微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) May 01, 2024 pm 12:01 PM

而後悔莫及、人們常常會因為一些原因不小心刪除某些聯絡人、微信作為一款廣泛使用的社群軟體。幫助用戶解決這個問題,本文將介紹如何透過簡單的方法找回被刪除的聯絡人。 1.了解微信聯絡人刪除機制這為我們找回被刪除的聯絡人提供了可能性、微信中的聯絡人刪除機制是將其從通訊錄中移除,但並未完全刪除。 2.使用微信內建「通訊錄恢復」功能微信提供了「通訊錄恢復」節省時間和精力,使用者可以透過此功能快速找回先前刪除的聯絡人,功能。 3.進入微信設定頁面點選右下角,開啟微信應用程式「我」再點選右上角設定圖示、進入設定頁面,,

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

字體大小的設定成為了重要的個人化需求,隨著手機成為人們日常生活的重要工具。以滿足不同使用者的需求、本文將介紹如何透過簡單的操作,提升手機使用體驗,調整手機字體大小。為什麼需要調整手機字體大小-調整字體大小可以使文字更清晰易讀-適合不同年齡段用戶的閱讀需求-方便視力不佳的用戶使用手機系統自帶字體大小設置功能-如何進入系統設置界面-在在設定介面中找到並進入"顯示"選項-找到"字體大小"選項並進行調整第三方應用調整字體大小-下載並安裝支援字體大小調整的應用程式-開啟應用程式並進入相關設定介面-根據個人

Win11管理員權限取得方法總計 Win11管理員權限取得方法總計 Mar 09, 2024 am 08:45 AM

Win11管理員權限取得方法匯總在Windows11作業系統中,管理員權限是非常重要的權限之一,可以讓使用者對系統進行各種操作。有時候,我們可能需要取得管理員權限來完成一些操作,例如安裝軟體、修改系統設定等。下面就為大家總結了一些取得Win11管理員權限的方法,希望能幫助大家。 1.使用快捷鍵在Windows11系統中,可以透過快捷鍵的方式快速開啟命令提

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) 手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) May 04, 2024 pm 06:01 PM

手機遊戲成為了人們生活中不可或缺的一部分,隨著科技的發展。它以其可愛的龍蛋形象和有趣的孵化過程吸引了眾多玩家的關注,而其中一款備受矚目的遊戲就是手機版龍蛋。幫助玩家們在遊戲中更好地培養和成長自己的小龍,本文將向大家介紹手機版龍蛋的孵化方法。 1.選擇合適的龍蛋種類玩家需要仔細選擇自己喜歡並且適合自己的龍蛋種類,根據遊戲中提供的不同種類的龍蛋屬性和能力。 2.提升孵化機的等級玩家需要透過完成任務和收集道具來提升孵化機的等級,孵化機的等級決定了孵化速度和孵化成功率。 3.收集孵化所需的資源玩家需要在遊戲中

Oracle版本查詢方法詳解 Oracle版本查詢方法詳解 Mar 07, 2024 pm 09:21 PM

Oracle版本查詢方法詳解Oracle是目前世界上最受歡迎的關聯式資料庫管理系統之一,它提供了豐富的功能和強大的效能,廣泛應用於企業。在進行資料庫管理和開發過程中,了解Oracle資料庫的版本是非常重要的。本文將詳細介紹如何查詢Oracle資料庫的版本信息,並給出具體的程式碼範例。查詢資料庫版本的SQL語句在Oracle資料庫中,可以透過執行簡單的SQL語句

See all articles