日期:2014-05-16 浏览次数:20675 次
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title></title> <style type ="text/css"> html,body{width:100%;height:100%} ul{padding:0px;margin:0px;list-style:none;} li{cursor:pointer;padding:0px 5px; line-height:25px;height:25px;border-bottom:1px solid #dee; } .show{position:absolute; z-index:9999; width:200px; height:auto; display:none;border:1px solid #ddd; background-color:#fff} </style> </head> <body> <p> <table id="tb" border=1> <tr><td><input type='text' /></td><td>aaaaaaaa</td></tr> <tr><td><input type='text' /></td><td>bbbbbbbb</td></tr> <tr><td><input type='text' /></td><td>cccccccc</td></tr> </table> </div> </p> </body> <script type="text/javascript"> var keys=['ada','sdfsd','bbb','sfga','dfhgfh','235s','dfew','ghjk','hjkghjk','fgjgfjf','fghjgfj','2345f','fthtr','sfgerw','tyerth','vnmu','wertewr','wert','asdfaf','zxcvd','gkju','dvfgdh','2354af','adsf','erterter','fghdfg','xvdfg','kjhu','qweasdas','xzce','werwre','zzczc','rtewtrew']; // 搜索值,可以用Ajax从数据库获取 function init(txt) { var divShow = document.createElement("div"); divShow.className ="show"; document.body.appendChild(divShow); divShow.onclick=function(e) { doClick(e,txt,this); }; txt.onclick=function(e) { doClick(e,this,divShow); }; txt.onkeyup=function(e){getSearchKeys(this,divShow);}; bindEvent(document.body,'click',function() { divShow.style.display = "none"; }); } function doClick(e,txt,divShow){ e = e||event; var t = e.target||e.srcElement if(t.tagName.toLowerCase()=='li') { txt.value = t.innerHTML; divShow.style.display = "none"; return; } /** if(e && e.stopPropagation){ //W3C取消冒泡事件 e.stopPropagation(); }else{ //IE取消冒泡事件 window.event.cancelBubble = true; } */ } function getSearchKeys(txt,divShow) { var s= txt.value.trim(); if(s=='') { divShow.style.display = "none"; return; } var arr=['<ul>']; for(var i=0;i<keys.length;i++) { if(keys[i].indexOf(s)>=0){ arr.push('<li>'+keys[i]+'</li>'); } } if(arr.length>1){ arr.push('</ul>'); divShow.innerHTML = arr.join(''); var p =getAbsPoint(txt); divShow.style.left = p.x +'px'; divShow.style.top = p.y + txt.offsetHeight + 'px'; divShow.style.display = "block"; }else{ divShow.style.display = "none"; } } function getAbsPoint(e) { var x = e.offsetLeft; var y = e.offsetTop; while(e = e.offsetParent) { x += e.offsetLeft; y += e.offsetTop; } return {"x": x, "y": y}; } Strin