html选择区域高亮,html 区域内查找,高亮,定位,类似于Ctrl+F

//第一个参数是搜索内容输入框,第二个参数是要搜索的范围,第三个参数是,是否搜索下一个

var countIndex = 0;

function findStr(searchInput,serDivID,isNext)

{

searchText=$.trim($(searchInput).val());

if(searchText!=null && searchText!=''){

clearSelection(serDivID);

var regExp = new RegExp(searchText, 'g');

var html = $("#"+serDivID).html();

var newHtml = html.replace(regExp, ''+searchText+'');

$("#"+serDivID).html(newHtml);

var selOpt=$("#"+serDivID).find("span[class=findStyle]");

if($(selOpt).size()>0){

$("#"+serDivID).animate({

scrollTop: $("#"+serDivID).scrollTop()+$(selOpt[countIndex]).offset().top-$("#"+serDivID).height()/2

});

}

}else if(isNext=='true'){

countIndex++;

var selOpt=$("#"+serDivID).find("span[class=findStyle]");

if($(selOpt).size()<=0||$("input[targetDateDiv='"+serDivID+"']").val()!=$("#"+serDivID).find("span[class=findStyle]:first").text()){

clearSelection(serDivID);

searchText=$("input[targetDateDiv='"+serDivID+"']").val();

var regExp = new RegExp(searchText, 'g');

var html = $("#"+serDivID).html();

var newHtml = html.replace(regExp, ''+searchText+'');

$("#"+serDivID).html(newHtml);

selOpt=$("#"+serDivID).find("span[class=findStyle]");

countIndex=0;

}

if(countIndex>=$(selOpt).size()){

countIndex=0;

}

if($(selOpt).size()>0){

$("#"+serDivID).animate({

scrollTop: $("#"+serDivID).scrollTop()+$(selOpt[countIndex]).offset().top-$("#"+serDivID).height()/2

});

}

}else{

clearSelection(serDivID);

$(searchInput).val('');

}

}

function clearSelection(serDivID)

{

countIndex=0;

var resetHml1 =replaceStrAll("\","",$("#"+serDivID).html());

var resetHml = replaceStrAll("\","",resetHml1);

$("#"+serDivID).html(resetHml);

}

function replaceStrAll(regExpStr, replaceWith,sourceText){

return sourceText.replace(new RegExp(regExpStr, "gi"), replaceWith);

}

做这一部分的时候,参考了网上很多前辈的例子..感谢前辈们无私奉献

自动定位部分需要根据自己的实际情况调整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值