1.在页面所有框中 搜索相关的关键字 点击搜索 页面中关键字红色 但是第二次更改关键字 搜索函数不触发 并且还是之前变色(不知道怎么处理 让他变为之前的颜色 不是红色)
2.这些数据 搜索的暂时都是死得 没有用接口。
3.
function setHeightKeyWord(id, keyword, color, bold) {
if (keyword == ""){
return;
}
var tempHTML = $("#" + id).html();
var htmlReg = new RegExp("\<.*?\>", "i");
var arrA = new Array();
for (var i = 0; true; i++) {
var m = htmlReg.exec(tempHTML);
if (m) {
arrA[i] = m;
} else {
break;
}
tempHTML = tempHTML.replace(m, "[[[[" + i + "]]]]");
}
var replaceText;
if (bold){
replaceText = "<span style='color:" + color + ";'>$1</span>";
} else{
replaceText = "<font style='color:" + color + ";'>$1</font>";
}
var arrayWord = keyword.split(',');
for (var w = 0; w < arrayWord.length; w++) {
var r = new RegExp("(" + arrayWord[w].replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&") + ")", "ig");
tempHTML = tempHTML.replace(r, replaceText);
}
for (var i = 0; i < arrA.length; i++) {
tempHTML = tempHTML.replace("[[[[" + i + "]]]]", arrA[i]);
}
$("#" + id).html(tempHTML);
}
$("#searchBtn").click(function() {
if ($('#searchMainLayoutDefault').is(':visible')) {
var $keyword = $("#searchInputText").val();
setHeightKeyWord('searchMainLayoutDefault', $keyword, 'red', true);
}
});
因为你把原始数据搞丢了。
var tempHTML = $("#" + id).html();
这是原始数据,应该保存下来,之后每次的操作都是在原始数据上。而你上面的代码 $("#" + id).html(tempHTML);
把原始数据覆盖了。后面当然覆水难收。