本文實例講述了高效jQuery選擇器的5個技巧。分享給大家供大家參考,具體如下:
顧名思義,jQuery專注於查詢(queries)。庫的核心允許你使用CSS選擇器語法,以及通過在集合上執行函數,來查找DOM元素。
jQuery使用瀏覽器原生API方法獲取DOM集合。現代瀏覽器支持getElementsByClassName,querySelector以及querySelectorAll(可以解析CSS語法)。然而,老版本的瀏覽器可能只提供getElementById以及getElementByTagName。在最壞的情況下,jQuery的Sizzle引擎必須解析選擇器字符串來匹配元素。
下面是可以幫助你優化jQuery選擇器的5點提示:
- 儘量使用ID
- HTMLID屬性在每一個頁面上都是唯一的,並且即使老版本的瀏覽器也可以非常迅速地定位一個元素:
- 避免只使用類名稱
- 下面的類選擇器在現代瀏覽器中執行迅速:
- 不幸的是,在老版本的瀏覽器,比如IE6/7和Firefox2,jQuery必須檢查頁面上的每一個元素來確定「myclass」是否被元素所包含。
- 如果通過標籤名加以限定可以讓選擇器更加的高效,例如:
- jQuery現在可以將搜索範圍限定在DIV元素。
- 保持簡單!
- 避免過於複雜的選擇器。除非你要查找一個極其複雜的HTML文檔,很少有需要使用多於2,3個修飾符的情況。
- 考慮下面的複雜選擇器:
- p#intro一定是唯一的,因而選擇器可以這樣簡化:
- 從左往右增加特異性
- 了解一點jQuery選擇器引擎的相關知識是有幫助的。查找首先從最後一個選擇器開始,因此,在老版本的瀏覽器中,一個類似於這樣的查詢:
- 將所有的em元素加載進一個數組。然後判斷每一個節點的父元素,進而排除那些找不到p#intro父節點標籤的元素。如果頁面上包含數百個em標籤的話,查詢會變得十分的低效。
- 根據你的文檔,查詢可以通過優先使用最佳限定符來獲得優化。其結果可以作為子選擇器的出發點,例如:
- 避免重複選擇
- 很少需要重複使用同樣的選擇器兩次。下面的代碼對每一個p標籤都選擇了3次:
- 記住jQuery支持鏈式操作;多個方法可以應用於同一個集合之上。因此,同樣效果的代碼可以通過單一的選擇器重寫:
- 如果需要多次使用同一組元素集合,你應該將jQuery對象使用變量加以緩存,例如:
- 與標準的DOM集合不同,jQuery集合併不是實時的,並且對象不會在paragraph標籤從文檔中新增或者移除時自動更新。你可以利用這個限制,創建DOM集合,並在需要時將其傳遞給jQuery函數,例如:
- 更多關於jQuery相關內容感興趣的讀者可查看專題:《jQuery頁面元素操作技巧匯總》、《jQuery常見事件用法與技巧總結》、《jQuery常用插件及用法總結》、《jQuery擴展技巧總結》及《jquery選擇器用法總結》
- 希望本文所述對大家jQuery程序設計有所幫助。