return eval( 'document.getElementById(" ' + objName +  '") '); 
改成:
return eval(document.getElementById(objName)); 

解决方案 »

  1.   

    为什么还是不行呢,楼上的朋友你有试过代码吗?
    我照你的样子改了下但还是不行??没有反应标签
    点上去?
    另外再提个问题如果我要用javascript改变标签
    的背景图片应该怎么写呢?
    也就是说被点击的标签改变背景图片,其它的标签
    不变?
      

  2.   

    估计是GetObj里面的eval写得不好,返回不了那个ID。我改成只用document.getElementById没错了,可是看不到什么效果。<script language="javascript" type="text/javascript">
    function Addid(preFix,classnumber,classname) { 
    switch (classnumber) 

    case 1: 
    document.getElementById(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; 
    for (var i=0; i <9;i++) 

    if (i!=1) document.getElementById(classname).style.filter = "none"; 

    break; 
    case 2: 
    document.getElementById(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; 
    for (var i=0; i <9;i++) 

    if (i!=2) document.getElementById(classname).style.filter = "none"; 

    break; 


    </script><body > 
    <div id="topnav" > 
    <ul > 
    <li id="news_lbl_0" class="topNo1" onclick="Addid( 'news ',1,this.id)" > 
    <a >首页 </a > </li > 
    <li id="news_lbl_1" class="topNo2" onclick="Addid( 'news ',2,this.id)" > 
    <a >网络学堂 </a > </li > 
    <li id="news_lbl_2" class="topNo3" > 
    <a >搜罗天下 </a > </li > 
    <li id="news_lbl_3" class="topNo4" > 
    <a >博客 </a > </li > 
    <li id="news_lbl_4" class="topNo5" > 
    <a >专栏 </a > </li > 
    <li id="news_lbl_5" class="topNo6" > 
    <a >免费广告 </a > </li > 
    <li id="news_lbl_6" class="topNo7" > 
    <a >下载专区 </a > </li > 
    <li id="news_lbl_7" class="topNo8" > 
    <a >论坛 </a > </li > 
    </ul > 
    </div > 
    </body >
      

  3.   

    哎,这么说吧我已经试了N次了,好玩的不得了
    其它的代码我都不写了,和上面的一样的我只
    写Addid这个函数里的代码:
    <script language="javascript" type="text/javascript">
    function Addid(preFix,classnumber,classname) 

    switch (classnumber) 

    case 1: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; 
    for (var i=0; i <9;i++) 

    if (i!=1) GetObj(classname).style.filter = "none"; 

    break; 
    case 2: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; 
    for (var i=0; i <9;i++) 

    if (i!=2) GetObj(classname).style.filter = "none"; 

    break; 

    } -----------------------------------------------------------------
    有兴趣的朋友可以试下,把switch语句里的for和if语句都去掉那么剩下的代码如下:
    function Addid(preFix,classnumber,classname) 

    switch (classnumber) 

    case 1: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);";         GetObj(classname).style.filter = "none"; break; 
    case 2: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);";       GetObj(classname).style.filter = "none"; break; 


    ------------------------------------------------------------------
    可以试一下如果需要效果只要将:
    GetObj(classname).style.filter = "none"; 
    这句去掉。
    不要效果就将这句加上。都正常的但加了一循环和
    判断之后就没相应了??不知道是为什么,可能是元
    素的ID没有取到,但为什么没有循环和判断之前都
    正常呢,都能取到元素的ID呢?????
      

  4.   

    希望各位朋友位帮忙解释一下,我原以为
    很简单的这个问题想不到我想了一个上午
    还是没办法,只有来CSDN求救罗!!!!!
      

  5.   

    什么也别说,把你的东西全部去掉剩下最基本的。JS没报错,但也没发现什么效果。<script language="javascript" type="text/javascript">
    function Addid(classnumber,classname) { 
    if(classnumber==1){
    document.getElementById(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5)";
    }
    else if(classnumber==2){
    document.getElementById(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5)";
    }
    }
    </script>
    <body> 
    <div id="topnav"> 
    <ul> 
    <li id="news_lbl_0" class="topNo1" onclick="Addid(1,this.id)"><a>首页 </a> </li> 
    <li id="news_lbl_1" class="topNo2" onclick="Addid(2,this.id)"><a>网络学堂 </a> </li> 
    <li id="news_lbl_2" class="topNo3"><a>搜罗天下</a></li>  
    <li id="news_lbl_3" class="topNo4"><a>博客</a></li> 
    <li id="news_lbl_4" class="topNo5"><a>专栏</a></li> 
    <li id="news_lbl_5" class="topNo6"><a>免费广告</a></li> 
    <li id="news_lbl_6" class="topNo7"><a>下载专区</a></li> 
    <li id="news_lbl_7" class="topNo8"><a>论坛</a></li> 
    </ul> 
    </div> 
    </body>
      

  6.   

    for (var i=0; i  <9;i++)  
    {  
    if (i!=1) GetObj(i).style.filter = "none";  
    }  
    for (var i=0; i  <9;i++)  
    {  
    if (i!=2) GetObj(i).style.filter = "none";  
    }  
      

  7.   

    楼上的不对哦,你试过了没有代码?
    就单独循环里换 i ? i有意义吗?
    不试就知道不行哦!!help me !!!!!
      

  8.   

    用这个有错误return eval(  'document.getElementById("  ' + objName +   '")  ');  
    改成他就没毛病了return eval(document.getElementById(objName));  
    但是没有效果,你到底要什么效果,还不如直接说个效果,帮忙做了呢
      

  9.   

    其实从代码上就可以看出来我的用意哈
    我现在只是想做个TABLE罢了,上面有
    几个可点击的分页,用户点哪个分页就
    显示哪个分页的内容在下面,然后被点
    击的分页高亮,或与其它分页颜色不同
    也可以。其它分页的颜色都不变,用户
    点另外一个分页时另外没点到的颜色反
    回到原来的颜色,被点击者高亮或颜色
    变化.
      

  10.   

    function Addid(preFix,classnumber,classname) //classnumber是不是你要做效果的标签?

    switch (classnumber) 

    case 1: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; //这里设置好了
    for (var i=0; i <9;i++) 

    if (i!=1) GetObj(classname).style.filter = "none"; //这里又把他取消了

    break; 
    case 2: 
    GetObj(classname).style.filter="progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);"; 
    for (var i=0; i <9;i++) 

    if (i!=2) GetObj(classname).style.filter = "none"; 

    break; 

    }