2010-02-19 60 views
4

假設我有這樣的HTML代碼:如何使用jQuery來突出顯示文本

<div class="person"> 
Mike Mulky 
</div> 

<div class="person"> 
Jenny Sun 
</div> 

<div class="person"> 
Jack Kickle 
</div> 

這個jQuery啄實際上將過濾匹配的查詢。例如,當用戶輸入文本框時。

$('#userInputTextbox').keypress(function(){ 
    $('div.person').hide().filter(':contains("'+THE_QUERY+'")').show(); 
}); 

This Works!它實際上過濾了這些東西。我的問題是:你如何突出顯示在那裏出現的單詞(查詢和DIV中的匹配文本)?

+1

通過強調顯示您的意思是轉變作風(即BG顏色)或選擇文本複印準備就緒? – 2010-02-19 00:44:16

+0

鑑於他處於「按鍵事件」中,他可能想要改變顏色。 – SLaks 2010-02-19 00:46:31

回答

7

我想抓住這個jQuery highlight plugin。現在在項目中使用它來反映AJAX搜索結果,效果非常好,非常輕巧/簡單。

在你的情況下,只需在鏈中添加.highlight(THE_QUERY)

$('#userInputTextbox').keypress(function(){ 
    $('div.person').hide().removeHighlight() 
     .filter(':contains("'+THE_QUERY+'")').highlight(THE_QUERY).show(); 
}); 

概念很簡單,查找文本包裝在一個<span class="highlight"></span>,你可以,但是你想樣式.highlight。當然有一個.removeHighlight()匹配。