我想用jQuery來生活突出顯示的單詞。我使用一個實時的按鍵事件來觸發突出顯示,以便突出顯示在輸入單詞時發生變化(使用輸入文本字段)用jQuery實時突出顯示一個或多個單詞
我發現了一段代碼,它工作正常,但此代碼不起作用實時關鍵事件,所以它包裝的第一個字母,並停在那裏。
這裏是我的HTML:
<input type="text" id="input" name="input"/>
<div id="content-block"><p>lorem ip sum </p></div>
這裏是我的JS:
$('#input').live('keyup', function() {
$('#input').trigger('highLight');
});
$('#input').bind('highLight', function() {
var o = {words:$('input[name="input"]').val()};
highlight("content-block", o);
});
function highlight(id, options) {
var o = {
words: '',
caseSensitive: false,
wordsOnly: true,
template: '$1<span class="highlight">$2</span>$3'
},
pattern;
$.extend(true, o, options || {});
if (o.words.length == 0) { return; }
pattern = new RegExp('(>[^<.]*)(' + o.words + ')([^<.]*)', o.caseSensitive ? "" : "ig");
$('#'+id).each(function() {
var content = $(this).html();
if (!content) return;
$(this).html(content.replace(pattern, o.template));
});
}
請參閱我的更新答案的解決方案,而不僅僅是問題的識別。 – 2011-05-19 22:03:40