【发布时间】:2019-01-20 09:55:35
【问题描述】:
我有这个搜索功能,我打算在内容框的 div 内的搜索框中突出显示输入文本的值。唯一的问题是它不起作用。当函数被调用时,我得到了'wording...'的console.log,但没有错误或突出显示。任何反馈将不胜感激,谢谢!
function search() {
//highlight text
var o = { words: $('#searchInput').val() };
highlight('#searchtextone', o);
function highlight(id, options) {
var o = {
words: '',
caseSensitive: false,
wordsOnly: true,
template: '$1$2$3',
class: 'highlight',
background: 'lightskyblue',
color: 'black'
},
pattern;
$.extend(true, o, options || {});
if (o.words.length == 0) {
console.log('no words');
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));
// $("#searchtextone").addClass("highlight");
console.log('wording...');
});
}
}
HTML - 输入
<input id="searchInput" onkeyup="search()" class="search-box" type="text" placeholder="Search"><i type="reset" class="fas fa-search"></i></input>
HTML - 内容
<p id="searchtextone" class="searchtext searchtextone">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
【问题讨论】: