使用jQuery简单实现模拟浏览器搜索功能
使用jquery简单实现模拟搜索功能。写的匆忙,示意一下,有待完善。把以下代码复制到文本文件中,把文件扩展名改为.html就可以运行了。
代码如下:
<html>
<head>
<style type="text/css">
.res
{
color: red;
}
</style>
<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var oldkey = "";
var index = -1;
var pos = new array();
var oldcount = 0;
function search(flg) {
if (!flg) {
index++;
index = index == oldcount ? 0 : index;
}
else {
index--;
index = index < 0 ? oldcount - 1 : index;
}
$(".result").removeclass("res");
$("#toresult").remove();
var key = $("#key").val(); //取key值
if (!key) {
oldkey = "";
return; //key为空则退出
}
if (oldkey != key) {
//重置
index = 0;
$(".result").each(function () {
$(this).replacewith($(this).html());
});
pos = new array();
$("body").html($("body").html().replace(new regexp(key, "gm"), "<span id='result" + index + "' class='result'>" + key + "</span>")); // 替换
$("#key").val(key);
oldkey = key;
$(".result").each(function () {
pos.push($(this).offset().top);
});
oldcount = $(".result").length;
}
$(".result:eq(" + index + ")").addclass("res");
$("body").scrolltop(pos[index]);
}
</script>
</head>
<body>
<p style="position: fixed; right: 20px; top: 0;">
<input id="key" type="text" style="width: 100px;" />
<input type="button" value="下一个" onclick="search()" />
<input type="button" value="上一个" onclick="search(1)" />
</p>
<p style="height: 50px;">
</p>
<p style="height: 200px;">
1待搜索的文本。
</p>
<p style="height: 200px;">
2待搜索的文本。
</p>
<p style="height: 200px;">
3待搜索的文本。
</p>
<p style="height: 200px;">
&nbnbsp; 4待搜索的文本。
</p>
<p style="height: 200px;">
5待搜索的文本。
</p>
<p style="height: 200px;">
10美丽的家乡。
</p>
<p style="height: 200px;">
11美丽的家乡。
</p>
<p style="height: 200px;">
12美丽的家乡。
</p>
<p style="height: 200px;">
13美丽的家乡。
</p>
<p style="height: 200px;">
14美丽的家乡。
</p>
<p style="height: 200px;">
15美丽的家乡。
</p>
</body>
</html>