jQuery是一種基於JavaScript語言的優秀開源框架,深受開發人員的喜愛。jQuery除了提供了豐富的API,還提供了許多實用的方法,包括.contains()方法。本文將重點介紹一下如何使用jQuery.contains()方法來進行關鍵詞搜索。
一、什麼是.contains()方法
jQuery.contains()方法是一個查找DOM節點的方法。它的作用是判斷一個節點是否包含另一個節點。如果包含,返回true,否則返回false。.contains()方法的語法如下:
jQuery.contains(container, contained)
其中container為包含節點的元素,contained為被包含的節點。例如:
<div id="container"> <span id="target">我是被包含的節點</span> </div> var container = document.getElementById("container"); var target = document.getElementById("target"); jQuery.contains(container, target); // 返回true
二、使用.contains()方法進行關鍵詞搜索
結合.contains()方法的功能,我們可以很方便地實現關鍵詞搜索。具體實現步驟如下:
1、獲取所有需要進行搜索的節點元素。例如:
var elements = $("body").find("*"); // 獲取下的所有節點元素,注意這裡是*,表示所有節點
2、遍歷每一個節點,判斷是否包含關鍵詞。如果包含,則將該節點保存到一個數組中,方便後續操作。例如:
var keyword = "jQuery.contains()方法"; var result = []; elements.each(function() { // 遍歷每一個節點 if (jQuery.contains(this, $(this).text())) { // 判斷是否包含關鍵詞 result.push(this); // 保存節點元素 } });
3、對搜索結果進行處理,例如高亮顯示。這裡以紅色高亮顯示為例:
$.each(result, function() { // 遍歷搜索結果 $(this).html($(this).html() .replace(new RegExp(keyword,"gm"), ""+keyword+"") ); // 對節點元素進行處理,將關鍵詞高亮顯示 });
最終效果如下圖所示:
三、注意事項
1、.contains()方法只能用於判斷一個節點是否包含另一個節點,不能用於判斷一個節點內部是否包含某個關鍵詞。因此,在實現搜索時,需要將每個節點內的純文本內容取出,再進行比對。
2、使用.contains()方法進行關鍵詞搜索雖然簡單,但對於大型網頁來說,搜索速度可能會比較慢。因此,在實際開發中,可以考慮使用專門的搜索框架,例如Elasticsearch等。
以上就是使用jQuery.contains()方法進行關鍵詞搜索的介紹,希望對大家有所幫助。
原創文章,作者:GDFHU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329998.html