日期:2014-05-16  浏览次数:20427 次

js搜索提示
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<style>
.prompt{border:1px solid #d6dce0; background:#fff; position:absolute;  z-index:999}
.prompt p{line-height:25px; height:25px; overflow:hidden; padding:0 10px}
.prompt .hover{background:#ebebeb; cursor:default}
</style>

<script type="text/javascript"> 
String.prototype.startWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
return false;
if(this.substr(0,str.length)==str)
return true;
else
return false;
return true;
}


function Product(name,pinYin,firstPinYin,product){
	if(name==null){
		name="";
	}
	if(firstPinYin==null){
		firstPinYin="";
	}
	if(product==null){
		product="";
	}
	this.name=name;
	this.pinYin=pinYin.toLowerCase();
	this.firstPinYin=firstPinYin.toLowerCase();
	this.product=product.toLowerCase();
}

var arrayObj = new Array();

arrayObj.push(new Product('abc','abc','abc','abc'));
arrayObj.push(new Product('abd','abd','abd','abd'));
arrayObj.push(new Product('acd','acd','acd','acd'));
arrayObj.push(new Product('bfd','bfd','bfd','bfd'));
arrayObj.push(new Product('ebd','ebd','ebd','ebd'));


var oldlength=0;
var oldvalue="";
var index=0;
var tip='汉字∣拼音∣首字母';

function searchProduct(){
	//校验一下
	var product=$("#product").val();
	if(product!=null){
		product=trim(product);
		product=product.toLowerCase();
		if(product!=""){
			var length=product.length;
			if(length!=oldlength||product!=oldvalue){
				oldlength=length;
				oldvalue=product;
				doSearch(product);
			}
			return;
		}
	}
	hiddenDiv();
}

function trim(str){
	return str.replace(/^\s+/g,"").replace(/\s+$/g,"");
}

function gotoProductPage(product){
	alert(product);
}

//搜索是否存在
function doSearch(product){
	var isFound=false;
	var resultArr = new Array();
	for(var j=0,k=arrayObj.length;j<k;j++){
		var obj=arrayObj[j];
		if(obj.name.indexOf(product)>-1||obj.pinYin.indexOf(product)>-1||obj.firstPinYin.indexOf(product)>-1){
			isFound=true;
			resultArr.push(obj);
		}
	}
	if(isFound){
		var tableStr="<table id='resultTable' width='100%'>";
		sortArr(resultArr,product);
		if(resultArr.length>=10){
			var arr = new Array();
			for(var i=0;i<10;i++){
				arr.push(resultArr[i]);
			}
			resultArr=arr;
		}
		for(var i=0,l=resultArr.length;i<l;i++){
			var obj=resultArr[i];
			tableStr+="<tr index='"+(i+1)+"' product='"+obj.product+"' onmouseover=\"mouseOver(this)\" onmouseout=\"mouseOut(this)\" ><td><p class='searchP'>"+obj.name+"</p></td></tr>";
		}
		showDiv(tableStr+"</table>");
	}else{
		index=0;
		$("#resultDiv").css("display","none");
	}
}

//产品排序
function sortArr(arr,prefix){
	for(var i=0,l=arr.length;i<l;i++){
		for(var j=i+1;j<l;j++){
			if(compareProduct(arr[i],arr[j],prefix)>=1){
				var s=arr[i];
				arr[i]=arr[j];
				arr[j]=s;
			}
		}
	}
}

function compareProduct(a,b,prefix){
	if(compare(a,prefix)){
		if(compare(b,prefix)){
			return a.pinYin.localeCompare(b.pinYin);
		}
		return -1;
	}
	if(compare(b,prefix)){
		return 1;
	}
	return a.pinYin.localeCompare(b.pinYin);
}

function compare(a,prefix){
	if(a.firstPinYin.startWith(prefix)||a.pinYin.startWith(prefix)||a.name.startWith(prefix)){	
		return true;
	}
	return false;
}

function showDiv(str){
	$("#resultDiv").html(str);
	$("#resultDiv").css("display","block");
}

function hiddenDiv(){
	index=0;
	oldlength=0;
	oldvalue="";
	$("#resultDiv").css("display","none");
}

//搜索是否只有一个结果
function searchOne(){
	var product=$("#product").val();
	if(product==null||trim(product)==""||product==tip){
		return;
	}
	var result="";
	var i=0;
	for(var j=0,k=arrayObj.length;j<k;j++){
		var obj=arrayObj[j];
		if(obj.name.indexOf(product)>-1||obj.pinYin.indexOf(product)>-1||obj.firstPinYin.indexOf(product)>-1){
			i++;
			if(i>1){
				break
			}
			result=obj.product;
		}
	}
	if(i==1){
		gotoProductPage(result);
	}else{
		showDiv("<div class='msg'