前台代码:
<table border="0" cellpadding="0" cellspacing ="0" style="width=700px;height:400px">
<tr>
<td onclick="Menu(1)"><asp:Label ID="m1" runat="server" Text="Label">房屋</asp:Label>
</td>
<td onclick="Menu(2)"><asp:Label ID="m2" runat="server" Text="Label">鲜花</asp:Label>
</td>
<td onclick="Menu(3)"><asp:Label ID="m3" runat="server" Text="Label">车辆</asp:Label>
</td>
<td onclick="Menu(4)"><asp:Label ID="m4" runat="server" Text="Label">其它</asp:Label>
</td>
</tr>
</table>
JS代码
function GetObj(objName){
if(document.getElementById){
return eval('document.getElementById("' + objName + '")');
}else if(document.layers){
return eval("document.layers['" + objName +"']");
}else{
return eval('document.all.' + objName);
}
}
function change_Menu(index){
for(var i=1;i<=num;i++)
{
//var m='<%=("m"+i).ClientID%>';
//var n='<%=("m".ClientID%>';
if(GetObj("m"+i)){
GetObj("m"+i).className = "menu"+i+"Off";
}
}
if(GetObj("m"+index)){
GetObj("m"+index).className = "menu"+index+"On";
}
function Menu(c_index){
change_Menu(c_index)
}
个人设想用JS代码中被注释的m和n替换JS代码中的“m"+1和"m" 结果浏览器依旧提示"缺少对象"
不知道 该怎么解决 很急 在线等~~~~
------解决方案--------------------------------------------------------
解决方法,建议楼主使用DOM来操作,而不是通过ID来引用节点元素。
或者你非要用id就这样: aspx文件里添加如下js:
<script type="text/javascript>var m1='<%=m1.ClientID %>';</script>
改change_Menu(index)方法:
function change_Menu(index){
var m = m1.substring(0,m1.length-1); //截取<span/>元素的id中除最后一个数字的部分
for(var i=1;i <=num;i++)
{
if(GetObj(m+i)){
GetObj(m+i).className = "menu"+i+"Off";
}
}
if(GetObj(m+index)){
GetObj(m+index).className = "menu"+index+"On";
}
}
上述代码没有测试,仅仅是个思路。楼主自己测试