欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jquery仿搜索自动联想功能代码

程序员文章站 2022-06-09 08:27:55
代码如下:

代码如下:


<!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>