jquery仿搜索自動聯想功能代碼

代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
body{margin:0px;padding:0px;}
ul{margin:px;padding:0px;list-style-type:none;}
</style>
<script src="jquery-1.8/jquery-1.8.0.js"></script>
<script>
$(function(){
a();
onclick();
$("#txt").bind("keyup",function(){
txtchange(0);
});

});

function a(){
ularray=[];
var data=[{1:11},{1:12},{1:22},{1:33},{1:123}];

//給ul傳入數據
var ul=$("#ul1");
$.each(data,function(index,item)
{
var li=$("<li></li>");

$.each(item,function(name,value)
{
var span=$("<span></span>").html(value);
li.append(span);
ularray.push(value);
});
ul.append(li);
});

//排序
ularray.sort();
};

//keyup事件
function txtchange(flag)
{
var textObj=$("#txt").val();
var pObj=$("#p1").html();
var array=[];

with(pObj)
{
var ulHTML=pObj.match(/<[^>]*>/)[0];//拿到開始標簽
val = ularray+ ""; //轉為字符串

for(var i=0;i<ularray.length;i++)
{
if(val.split(",")[i].indexOf(textObj)!==-1||flag) //分割成字符串數組
{
array[array.length]="<li><span>"+ularray[i]+"</span></li>";
};
};//把新得到的集合放入數組

var liHtml = "";
$.each(array,function(item,val){
liHtml += val;
});//去掉數組間逗號

pObj=ulHTML+liHtml+"</ul>";
$("#ul1").html(pObj);
onclick(); //讓新得到的數組擁有點擊功能
};
};

//span單擊事件
function onclick(){
$("#ul1 li span").click(function()
{
var oli=$(this);
var otxt=$(this).html();
$("#txt").empty().val(otxt);

});
};
</script>
</head>

<body >
<center>
<form>
<input id="txt" type="text" />
自動提示
<p id="p1">
<ul id="ul1" >
</ul>
</p>
</form>
</center>
</body>
</html>

發佈留言