js专家请为我解决个问题,100分相送 我想实现的效果就是将text设置为菜单,当text获得焦点时,点方向键"->"自动打开父菜单下的子菜单,然后点"<-"关闭其子菜单,点enter则打开菜单的url. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴个极联控制的代码给你参考,不知道是不是你要的东西<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>javascript实现级联选择</title><style type="text/css">body, td{font-family: 宋体;font-size: 12px;}</style><script language="javascript"><!--function Menu(theform,menuid) {// 变量定义://定义菜单级别MenuClass,菜单长度数组MenuLenArr,菜单名称数组MenuArr,//下级菜单数组SubMenuArr,菜单ID数组MenuIdArrvar MenuClass,MenuLenArr,MenuArr,SubMenuArr,MenuIdArrvar splitchar1,splitchar2 //定义分隔符:splitchar1,splitchar2var arr,subarr,arrlen //定义临时数组,子数组,数组长度,//变量赋值:首先定义数组,然后对数组赋值MenuArr=new Array()MenuLenArr=new Array()SubMenuArr=new Array()MenuIdArr=new Array()MenuArr[1]="欧洲|||亚洲|||非洲|||大洋洲|||北美洲|||南美洲"MenuArr[2]="欧洲###德国|||欧洲###法国|||北美洲###美国|||北美洲###加拿大|||亚洲###中国" MenuArr[3]="中国###北京|||中国###上海|||美国###华盛顿|||美国###纽约|||德国###柏林" MenuArr[4]="北京###朝阳区|||上海###徐汇区|||广州###天河区|||纽约###曼哈顿区"MenuIdArr[1]="zhou"MenuIdArr[2]="guo"MenuIdArr[3]="shi"MenuIdArr[4]="qu"MenuClass=4 //4级菜单splitchar1="|||";splitchar2="###";// 生成数组for(iii=1;iii<=MenuClass;iii++){arr=MenuArr[iii].split(splitchar1);len=arr.length;subarr=new Array()for(i=0;i<len;i++){subarr[i]=arr[i].split(splitchar2);}len=subarr.length;SubMenuArr[iii]=subarr MenuLenArr[iii]=len}//============更改下级菜单======================var self,submenu,thislen,thisarr //self本级菜单,submenu子菜单//theform:所在表单对象[type:object];menuid:本级菜单级别ID,如1级菜单则为1self=eval("document."+theform.name+"."+MenuIdArr[menuid]) submenu=eval("document."+theform.name+"."+MenuIdArr[menuid+1]) thislen=MenuLenArr[menuid+1]thisarr=SubMenuArr[menuid+1]submenu.length=0submenu.options.add(new Option( "-----请选择-----","")); for (i=0;i<thislen;i++) { if (thisarr[i][0] == self.value) {submenu.options.add(new Option(thisarr[i][1], thisarr[i][1])); } } submenu.options[0].selected=true/*//============更改下级以下菜单==============var kkkfor(kkk=menuid+2;kkk<=MenuClass;kkk++) { submenu=eval("document."+theform.name+"."+MenuIdArr[kkk]) submenu.length=0submenu.options.add(new Option( "-----请选择-----","")); submenu.options[0].selected=true}*/}//--></script><form name="form1" method="post" action=""><table width="90%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC"><tr bgcolor="F1F1F1"><td height="24" colspan="2" align="center">用JavaScript实现级联选择</td></tr><tr bgcolor="#FFFFFF"><td width="15%" height="24" align="center">所 在 洲:</td><td><select name="zhou" id="zhou" onChange="Menu(this.form,1);"><option value="" selected>-----请选择-----</option><option value='欧洲'>欧洲</option><option value='亚洲'>亚洲</option><option value='非洲'>非洲</option><option value='大洋洲'>大洋洲</option><option value='北美洲'>北美洲</option><option value='南美洲'>南美洲</option></select></td></tr><tr bgcolor="#FFFFFF"><td height="24" align="center">国 家:</td><td><select name="guo" id="select" onChange="Menu(this.form,2);"><option value="" selected>-----请选择-----</option></select></td></tr><tr bgcolor="#FFFFFF"><td height="24" align="center">城 市:</td><td><select name="shi" id="select2" onChange="Menu(this.form,3);"><option value="" selected>-----请选择-----</option></select></td></tr><tr bgcolor="#FFFFFF"><td height="24" align="center">地 区:</td><td><select name="qu" id="select3"><option value="" selected>-----请选择-----</option></select></td></tr><tr bgcolor="F1F1F1"><td height="24" colspan="2" align="center"> </td></tr></table></form></html> 这个,是不是你要的效果?脚本说明:第一步:把如下代码加入<head>区域中<SCRIPT language=javascript><!--function out(){if(window.event.toElement.id!="menu" && window.event.toElement.id!="link")menu.style.visibility="hidden";}//--> function out1(){if(window.event.toElement.id!="menu1" && window.event.toElement.id!="link")menu1.style.visibility="hidden";}//--></SCRIPT>第二步:把如下代码加入<body>区域中<div id="back" onmouseout="out()"style="position:absolute;top:180;left:310;width:160;height:40;z-index:1;visibility:visible;"><span id="menubar" onmouseover="menu.style.visibility='visible'"><font color=red size=2>菜单</span><div border=1 id="menu" style="position:absolute;top:15;left:0;width:50;height:10;z-index:2;visibility:hidden;"><a id="link" href="rjxz.htm">软件下载</a><a id="link" href="yxxz.htm">游戏下载</a><a id="link" href="hjsj.htm">黄金书籍</a><a id="link" href="mntk.htm">美女图库</a><a id="link" href="mp3.htm">MP3金曲</a><a id="link" href="flash.htm">FLASH</a></div></div><div id="back" onmouseout="out1()"style="position:absolute;top:180;left:370;width:160;height:40;z-index:3;visibility:visible;"><span id="menubar" onmouseover="menu1.style.visibility='visible'"><font color=red size=2>菜单</span><div border=1 id="menu1" style="position:absolute;top:15;left:0;width:50;height:10;z-index:4;visibility:hidden;"><a id="link" href="rjxz.htm">软件下载</a><a id="link" href="yxxz.htm">游戏下载</a><a id="link" href="hjsj.htm">黄金书籍</a><a id="link" href="mntk.htm">美女图库</a><a id="link" href="mp3.htm">MP3金曲</a><a id="link" href="flash.htm">FLASH</a></div></div> 有点意思,:>我要用键盘上的<-^->方向键代替鼠标的左右键请帮我用键盘实现一下 Three.JS OBJ转化为JSON 的导入问题 搞半天无从下手! firebug调试有点小问题~~~~ js如何去掉html中的文本框(表单) 帮助:删除 img 节点 confirm能否在默认情况下 选择"否" 请教,如何使用script让一个select展开它的下拉列表阿? 字符截起或是替换问题! 请教: (很菜,但我真的没办法) var p in (toString:null) 什么意思 大家都是怎么调试程序的啊,我快被JS折磨死了 再次求助JS高手价值200分
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>javascript实现级联选择</title>
<style type="text/css">
body, td
{
font-family: 宋体;
font-size: 12px;
}
</style>
<script language="javascript">
<!--
function Menu(theform,menuid)
{
// 变量定义:
//定义菜单级别MenuClass,菜单长度数组MenuLenArr,菜单名称数组MenuArr,
//下级菜单数组SubMenuArr,菜单ID数组MenuIdArr
var MenuClass,MenuLenArr,MenuArr,SubMenuArr,MenuIdArr
var splitchar1,splitchar2 //定义分隔符:splitchar1,splitchar2
var arr,subarr,arrlen //定义临时数组,子数组,数组长度,
//变量赋值:首先定义数组,然后对数组赋值
MenuArr=new Array()
MenuLenArr=new Array()
SubMenuArr=new Array()
MenuIdArr=new Array()
MenuArr[1]="欧洲|||亚洲|||非洲|||大洋洲|||北美洲|||南美洲"
MenuArr[2]="欧洲###德国|||欧洲###法国|||北美洲###美国|||北美洲###加拿大|||亚洲###中国"
MenuArr[3]="中国###北京|||中国###上海|||美国###华盛顿|||美国###纽约|||德国###柏林"
MenuArr[4]="北京###朝阳区|||上海###徐汇区|||广州###天河区|||纽约###曼哈顿区"
MenuIdArr[1]="zhou"
MenuIdArr[2]="guo"
MenuIdArr[3]="shi"
MenuIdArr[4]="qu"
MenuClass=4 //4级菜单
splitchar1="|||";
splitchar2="###";
// 生成数组
for(iii=1;iii<=MenuClass;iii++){
arr=MenuArr[iii].split(splitchar1);
len=arr.length;
subarr=new Array()
for(i=0;i<len;i++){
subarr[i]=arr[i].split(splitchar2);
}
len=subarr.length;
SubMenuArr[iii]=subarr
MenuLenArr[iii]=len
}//============更改下级菜单======================
var self,submenu,thislen,thisarr
//self本级菜单,submenu子菜单
//theform:所在表单对象[type:object];menuid:本级菜单级别ID,如1级菜单则为1
self=eval("document."+theform.name+"."+MenuIdArr[menuid])
submenu=eval("document."+theform.name+"."+MenuIdArr[menuid+1])
thislen=MenuLenArr[menuid+1]
thisarr=SubMenuArr[menuid+1]
submenu.length=0
submenu.options.add(new Option( "-----请选择-----",""));
for (i=0;i<thislen;i++) {
if (thisarr[i][0] == self.value) {
submenu.options.add(new Option(thisarr[i][1], thisarr[i][1]));
}
}
submenu.options[0].selected=true
/*
//============更改下级以下菜单==============
var kkk
for(kkk=menuid+2;kkk<=MenuClass;kkk++) {
submenu=eval("document."+theform.name+"."+MenuIdArr[kkk])
submenu.length=0
submenu.options.add(new Option( "-----请选择-----",""));
submenu.options[0].selected=true
}*/
}
//-->
</script>
<form name="form1" method="post" action="">
<table width="90%" border="0" align="center" cellpadding="2"
cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="F1F1F1">
<td height="24" colspan="2" align="center">用JavaScript实现级联选择</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="15%" height="24" align="center">所 在 洲:</td>
<td>
<select name="zhou" id="zhou" onChange="Menu(this.form,1);">
<option value="" selected>-----请选择-----</option>
<option value='欧洲'>欧洲</option>
<option value='亚洲'>亚洲</option>
<option value='非洲'>非洲</option>
<option value='大洋洲'>大洋洲</option>
<option value='北美洲'>北美洲</option>
<option value='南美洲'>南美洲</option>
</select>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">国 家:</td>
<td>
<select name="guo" id="select" onChange="Menu(this.form,2);">
<option value="" selected>-----请选择-----</option>
</select>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">城 市:</td>
<td>
<select name="shi" id="select2" onChange="Menu(this.form,3);">
<option value="" selected>-----请选择-----</option>
</select>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">地 区:</td>
<td>
<select name="qu" id="select3">
<option value="" selected>-----请选择-----</option>
</select>
</td>
</tr>
<tr bgcolor="F1F1F1">
<td height="24" colspan="2" align="center"> </td>
</tr>
</table>
</form>
</html>
脚本说明:
第一步:把如下代码加入<head>区域中
<SCRIPT language=javascript><!--
function out()
{
if(window.event.toElement.id!="menu" && window.event.toElement.id!="link")
menu.style.visibility="hidden";
}
//-->
function out1()
{
if(window.event.toElement.id!="menu1" && window.event.toElement.id!="link")
menu1.style.visibility="hidden";
}
//-->
</SCRIPT>第二步:把如下代码加入<body>区域中
<div id="back" onmouseout="out()"style="position:absolute;top:180;left:310;width:160;height:40;z-index:1;visibility:visible;">
<span id="menubar" onmouseover="menu.style.visibility='visible'">
<font color=red size=2>菜单</span>
<div border=1 id="menu" style="position:absolute;top:15;left:0;width:50;height:10;z-index:2;visibility:hidden;">
<a id="link" href="rjxz.htm">软件下载</a>
<a id="link" href="yxxz.htm">游戏下载</a>
<a id="link" href="hjsj.htm">黄金书籍</a>
<a id="link" href="mntk.htm">美女图库</a>
<a id="link" href="mp3.htm">MP3金曲</a>
<a id="link" href="flash.htm">FLASH</a>
</div>
</div>
<div id="back" onmouseout="out1()"style="position:absolute;top:180;left:370;width:160;height:40;z-index:3;visibility:visible;">
<span id="menubar" onmouseover="menu1.style.visibility='visible'">
<font color=red size=2>菜单</span>
<div border=1 id="menu1" style="position:absolute;top:15;left:0;width:50;height:10;z-index:4;visibility:hidden;">
<a id="link" href="rjxz.htm">软件下载</a>
<a id="link" href="yxxz.htm">游戏下载</a>
<a id="link" href="hjsj.htm">黄金书籍</a>
<a id="link" href="mntk.htm">美女图库</a>
<a id="link" href="mp3.htm">MP3金曲</a>
<a id="link" href="flash.htm">FLASH</a>
</div>
</div>
我要用键盘上的<-^->方向键代替鼠标的左右键
请帮我用键盘实现一下