2014-02-25 123 views
0

我試圖突出顯示搜索術語,但它不會拆分單詞。兩個單詞作爲一個字符串並僅按原樣高亮顯示字符串。jQuery突出顯示所有術語

demo中,您可以看到「Windows XP」突出顯示,但不顯示「Windows」。我該怎麼做才能突出這兩個詞呢?

$(document).ready(function() { 

      $('p,a').highlight('Windows XP'); 

}); 

謝謝你的答案,但我認爲你們不明白。搜索詞是從輸入字段中獲取的,因此它發生了變化。這不會是Windows XP中始終,它可以「曬在沙灘上」,我想所有的字加以強調不只是「太陽」

我更新了演示 http://jsfiddle.net/eayan/12/

+0

你演示小提琴似乎不工作。 – j08691

+0

試試firefox或不同的瀏覽器 – SamotnyPocitac

回答

1

試試這個,它應該突出整個字符串和裏面的話。

var searchterm = "Windows XP"; 
var tohighlight = searchterm.split(" "); 
tohighlight.push(searchterm); 
$("p,a").highlight(tohighlight); 
+0

我修改了我的問題 – SamotnyPocitac

+0

非常好,這個工作正常!謝謝 – SamotnyPocitac

1

假設你得到的字符串與

var s = $('#myInput').val(); 

s.split(' ').forEach(function(token){ 
    $('p,a').highlight(token); 
}); 

$("body p").highlight(s.split(' ')); 
2

從插件的文檔(可here):

您可以通過使用術語的陣列作爲第一屬性運行亮點突出多個文本一次。這比運行高亮功能要快好幾倍。

$("body p").highlight(["jQuery", "highlight", "plugin"]);

這意味着,你可以簡單地使用:

$('p,a').highlight(['Windows XP', 'Windows']); 
+0

這是錯的,對不起 – SamotnyPocitac

+0

@SamotnyPocitac有什麼錯? –

+0

請看我編輯的問題 – SamotnyPocitac

1

希望您正在尋找這樣的:

var term = $('#q').val(); 
$.each(term.split(" "),function(i,v){ 
    $('p,a').highlight(v); 
});