function filterSearchWords() {
var query = $("#searchquery").val();
go(query);
function go(query) {
$(".search-result p:contains(" + query + ")").html(function (_, html) {
return html.replace(query, "<span class='search-enlight'>$&</span>", 'gi');
});
$(".search-result h2 a:contains(" + query + ")").html(function (_, html) {
return html.replace(query, "<span class='search-enlight'>$&</span>", 'gi');
});
console.log(query);
}
}
这是我的尝试。它增加了范围,但仅限于包含字符串的单词或部分单词。让我们说字符串是Pie,它在所有“Pie”中添加了span,并在Piechart中包装了“Pie”,但是我希望它包装所有的Piechart,并且没有大写的馅饼。
任何人都可以修改我的代码来帮助我吗?
由于
我尝试使用正则表达式“gi”似乎不起作用:/
UPDATE 差不多......
function filterSearchWords() {
var query = $("#searchquery").val();
go(query);
function go(query) {
$.extend($.expr[':'], {
'containsi': function (elem, i, match, array) {
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
$(".search-result p:containsi(" + query + ")").html(function (_, html) {
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");
});
$(".search-result h2 a:containsi(" + query + ")").html(function (_, html) {
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");
});
console.log(query);
}
}
这是我的最后一个问题。我成功删除了casesensitive部分,但它与整个单词不匹配。