JS实现关键字搜索时的相关下拉字段效果
作者:bea
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>Hello World</title> <link href="style.css" rel="external nofollow" rel="stylesheet" type="text
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>Hello World</title>
<link href="style.css" rel="external nofollow" rel="stylesheet" type="text/css">
<script type="text/javascript">
sources= new Array("www.sina.com","www.baidu.com","www.google.com","www.sina.org","www.baidu.ogr.cn");
tabinfo = "";
flag = new Array(sources.length);
for(var i=0;i<flag.length;i++)
flag[i] = false ;
function immediately(){
var element = document.getElementById("i1");
if("v"=="v") {
element.onpropertychange = webChange;
}else{
element.addEventListener("input",webChange,false);
}
function webChange(){
var tab = document.all("dl1");
for(var i=0;i<flag.length;i++)
flag[i] = false ;//重新初始化
if(element.value){
var content = document.getElementById("i1").value;
for(var i = 0 ;i < sources.length ; i ++){
if(sources[i].indexOf(content) != -1){
flag[i] = true;
}
}
for(var j=0;j<flag.length;j++){
if(flag[j]){//sources[j]有与文本框文字相同的内容
if(tab.rows.length>0){
for(var k=0;k<tab.rows.length;k++)
if(tab.rows[k].cells[0].innerText.indexOf(content) == -1)
tab.deleteRow(k);
}
for(var k=0;k<tab.rows.length;k++){
tabinfo += tab.rows[k].cells[0].innerText;
}
if(tabinfo.indexOf(sources[j]) == -1){
nrow = tab.insertRow(0);
newcell = nrow.insertCell();
newcell.innerHTML = sources[j]
}
tabinfo = "";
}
}
}
}
}
</script>
<script language="javascript">
var lastObj=null;
function backBlack(){
event.srcElement.style.background="gray";
forceBackC6();
if(event.srcElement.tagName=="TD"){
lastObj=event.srcElement;
}
fillData();
}
function backC6(){
event.srcElement.style.background="#CCCCCC";
}
function forceBackC6(){
if(lastObj!=null)
lastObj.style.background="#F8F8FF";
}
function fillData(){
if(lastObj.innerHTML!=null)
document.all.i1.value=lastObj.innerHTML;
}
function init(){
Layer1.style.top=i1.offsetTop+40;
Layer1.style.left=i1.offsetLeft;
Layer1.style.visibility="visible";
}
function hideBelow(){
Layer1.style.visibility="hidden";
}
</script>
</head>
<body>
<input type="text" id="i1" style="height:20px" onFocus="init()" onBlur="hideBelow()" />
<script type="text/javascript">
immediately();
</script>
<div id="Layer1">
<table id="dl1" class="midHead" cellspacing="0" onMouseOut="backC6()" onMouseOver="backBlack()" border="0" >
</table>
</div>
<br>
</body>
</html>
猜你喜欢
您可能感兴趣的文章:
- js事件监听机制(事件捕获)总结
- 使用jquery.qrcode生成彩色二维码实例
- 兼容最新firefox、chrome和IE的javascript图片预览实现代码
- js调试工具console.log()方法查看js代码的执行情况
- JS创建类和对象的两种不同方式
- 将HTML格式的String转化为HTMLElement的实现方法
- jquery datatable后台封装数据示例代码
- jquery对象和javascript对象即DOM对象相互转换
- js判断当页面无法回退时关闭网页否则就history.go(-1)
- js和jquery设置disabled属性为true使按钮失效
- javascript中为某个元素指定事件的三种方式
- 谷歌地图打不开的解决办法
- JavaScript验证18位身份证号码最后一位正确性的实现代码
- jquery bind(click)传参让列表中每行绑定一个事件
- jQuery html()方法使用不了无法显示内容的问题
- JQuery设置获取下拉菜单某个选项的值(比较全)
- js触发select onchange事件的小技巧
- jquery中each遍历对象和数组示例
- js 动态修改css文件的方法