jQuery中selector,context幾種呼叫方式程式碼實例詳解
首先我們給下面的HTML程式碼:
<p id="parent" class="parent"> <p class="child"> child1 </p> <p class="child"> child2 </p> </p> <p id="parent1" class="parent"> <p class="child"> child1 </p> <p class="child"> child2 </p> </p>
呼叫方式1:第二個參數context是DOM元素
var doms=$(".child",$("#parent")[0]); console.log(doms);
這時候第二個參數是DOM對象,列印[p.child, p.child, prevObject: jQuery.fn.init[1], context: p#parent, selector: ".child"]
呼叫方式2:第二個參數context是jQuery物件
var doms=$(".child",$($("#parent")[0])); console.log(doms);
這時候列印結果和上面第一種情況一樣,[p.child, p.child, prevObject: jQuery.fn.init[1 ], context: p#parent, selector: ".child"]
呼叫方式3:第二個參數是一個DOM陣列
var doms=$(".child",[document.getElementById("#parent"),document.getElementById("#parent1")]) console.log(doms);
呼叫方式4:第二個參數是一個jQuery物件數組
var doms=$(".child",$(".parent")) console.log(doms);
這種方式的結果和第三種方式是完全一樣的!
呼叫方式5:傳入的參數是一個函數,函數會在ready函數呼叫的時候呼叫
$(function() { console.log("dom ready"); })
我們現在從原始碼中分析這幾種情況:
如果傳入DOM的情況
else if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; // HANDLE: $(function) // Shortcut for document ready }
如果傳入DOM元素,那麼直接把元素放在jQuery物件上面,同時把length自增!
如果傳入了jQuery物件
if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; }
如果傳入了jQuery對象,那麼也是把參數jQuery的selector和context直接封裝到新建立的jQuery物件上面!呼叫方式如$($(''))這種方式!
如果傳入的是一個函數
else if ( jQuery.isFunction( selector ) ) { return typeof rootjQuery.ready !== "undefined" ? rootjQuery.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); }
如果傳入了一個函數,那麼直接放在$(document).ready()中等待執行,如果沒有ready函數那麼直接執行(使用了jQuery框架那麼ready是存在的!)
如果是傳入了一個DOM數組或jQuery的物件
return jQuery.makeArray( selector, this );
透過jQuery.makeArray我們可以把所有的參數封裝到一個對像上面,但是這個函數第二個參數預設是數組對象,但是這裡傳入了jQuery對象,那麼最後返回的結果就是jQuery對象。因此,我們透過這種方式把我們傳入的DOM數組或jQuery物件全部封裝到一個新的jQuery物件上面回傳!這種方式的呼叫如下:
var $doms=$([document.getElementById('ql'),document.getElementById('fkl')]); //把上面的DOM数组封装到新创建的jQuery对象上 console.log($doms);
下面這種呼叫方式是我們最常用的方式,該方式包含選擇對象的上下文:
else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); }
這種方式就是如$('li',$('ul'))第二個參數如果是jQuery對象,那麼直接呼叫find方法,否則先把第二個參數的DOM物件封裝為jQuery物件然後呼叫find方法進行查找!這種呼叫方式如下:
var doms=$(".child",$(".parent")) ; //这时候我们会选择class为parent元素下的所有的class为child的元素集合 //作为jQuery对象返回 console.log(doms);
很顯然,我們傳入的第二個參數是jQuery對象,那麼我們呼叫了Sizzle的find方法來進行查詢,如果第二個參數是一個DOM數組,也會該DOM數組封裝成為jQuery對象然後以此為上下文進行查詢!
這時候我又要提一下這種呼叫方式(第二個參數可以是DOM數組)
var doms=$(".child",$(".parent")) console.log(doms);
這時候透過的就是jQuery物件具有的find實例方法來完成的(呼叫Sizzle來完成),所以返回的就是DOM數組中每一個DOM對象的所有的滿足selector的子元素組成的集合,但是這是去重的!
以上是jQuery中selector,context幾種呼叫方式程式碼實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

jQuery引用方法詳解:快速上手指南jQuery是一個受歡迎的JavaScript庫,被廣泛用於網站開發中,它簡化了JavaScript編程,並為開發者提供了豐富的功能和特性。本文將詳細介紹jQuery的引用方法,並提供具體的程式碼範例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML檔案中引入jQuery函式庫。可以透過CDN連結的方式引入,也可以下載

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s

有很多朋友還不知道matlab如何呼叫m文件,所以下面小編就講解了matlab調用m文件的方法,有需要的小伙伴趕緊來看一下吧,相信對大家一定會有所幫助哦。 1.先開啟matlab軟體,在主介面中點選“開啟”,如下圖所示。 2、然後選擇一個需要打開的m文件,選擇打開,如下圖。 3.接著在編輯器中看m檔案的檔名和變數數目,如下圖。 4.可以在命令列中輸入m檔名後括號加變數值,就可以調用,如下圖所示。 5.最後就可以成功呼叫m文件,如下圖所示。上面就是小編為大家帶來的matlab如何呼叫m檔的全

jQuery是一個受歡迎的JavaScript函式庫,廣泛用於網頁開發。在網頁開發過程中,經常需要透過JavaScript動態地在表格中新增一行。本文將介紹如何使用jQuery為表格新增一行,並提供具體的程式碼範例。首先,我們需要在HTML頁面中引入jQuery函式庫。可以透過以下程式碼在標籤中引入jQuery庫:
