这是一个简单的常用的折叠菜单
<script>
var classCount = 4; // 菜单大类的个数
function Show(theId) {//参数为菜单的编号,从0开始
theTr = eval("tr_" + theId); //生成相应元素的在页面中的ID
//通过此ID来设置相应元素的CSS属性
//如果是折叠的,则展开之
if (theTr.style.display == "none") {
theTr.style.display = "block";
}
//否则折叠之
else {
theTr.style.display = "none";
}
//遍历关闭之前展开的菜单(对当前菜单不做处理)
for (i = 0; i < classCount; i++) {
if (i == theId)
continue;
theTr = eval("tr_" + i);
theTr.style.display = "none";
}
}
</script>
<table>
<tr>
<td id="td_0" align="middle" width="89%" bgColor=#1f65c2>
<a href="javascript:show(0)">基础数据管理</a>
</td>
</tr>
<tr id="tr_0" style="display:none;curson:hand">
<td align="middle" bgColor="#4c84ce" height="50">
<div>基础数据管理</div>
</td>
</tr>
<tr>
<td id="td_1" align="middle" width="89%" bgColor=#1f65c2>
<a href="javascript:show(1)">基础数据管理</a>
</td>
</tr>
<tr id="tr_1" style="display:none;curson:hand">
<td align="middle" bgColor="#4c84ce" height="50">
<div>基础数据管理</div>
</td>
</tr>
</table>
javascript中eval
eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子:
我们要做一个function(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。
function output(a,b)
{
var tmpa,tmpb;
tmpa=document.all.a.value;
tmpb=document.all.b.value;
document.write(tmpa+tmpb);
}
output('input1','input2');
这样你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来 javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样:
function output(a,b)
{
var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
tmpb=eval("document.all."+b+".value");
document.write(tmpa+tmpb);
}
output('input1','input2');
这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以
顺利取出input1和input2的值,我们的目的达到了