jQuery Autocomplete(自動完成)是一種強大的插件,可為文本框提供快速、動態的搜索建議。它允許用戶輸入一些文字,并在與建議匹配時自動彈出下拉列表,以便選擇或完整該詞語。
其中一個常見需求是將自動完成文本框匹配的字詞高亮顯示??梢允褂靡恍〤SS規則來實現高亮文本的樣式,但首先需要了解高亮文本需要在哪里添加。
$("#auto-complete").autocomplete({ source: ["JavaScript", "Java", "Python", "Ruby", "PHP"], response: function(event, ui) { var term = this.term; var regex = new RegExp('(' + term + ')', 'gi'); ui.content.forEach(function(item) { item.label = item.label.replace(regex, "$1"); //標簽高亮 }); } });
這段代碼中,response
回調函數用于處理自動完成列表的數據,并高亮自動完成文本框中的匹配項。它使用JavaScript內置的RegExp
構造函數來創建一個正則表達式,用于搜索文本中的匹配項。然后在循環遍歷自動完成列表中的每個項目時,使用JavaScriptreplace()
函數替換所有匹配項并添加strong
HTML標簽以實現高亮顯示。
這個例子中的CSS代碼可能如下所示:
.ui-autocomplete .ui-menu-item strong { font-weight: bold; color: #f00; }
這將設置strong
標簽的樣式,并使用紅色字體加粗高亮顯示自動完成文本匹配項。
總體來說,使用jQuery Autocomplete實現文本高亮很容易,并使用response
回調函數處理自動完成列表中的數據可以控制搜索結果的呈現方式。