我的本意是想实现:ul中最后一个li的style.borderRight设为none。html码是:<div id="navParent">
   <ul>
<li></li>
<li></li>
………(这里由程序读取数据库生成)………
   </ul>
</div>
我写的js是:var getElm = document.getElementById("navParent").getElementsByTagName("LI"); 
getElm[getElm.length-1].style.borderRight = "none";
结果没有实现预期要求,
请问高手,我哪儿写错了,
麻烦帮忙改改!感谢了!

解决方案 »

  1.   

    经我测试没有问题,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>test</title>
        <style type="text/css">
            li{ border:1px dotted #ccc; margin-bottom:20px;}
        </style>
    </head>
    <body>
    <div id="navParent">
        <ul>
            <li>111</li>
            <li>222</li>
            <li>2223</li>
            <li>2224</li>
        </ul>
    </div>
    <script type="text/javascript">
        var getElm = document.getElementById("navParent").getElementsByTagName("LI");
        getElm[getElm.length - 1].style.borderRight = "none";
    </script>
    </body>
    </html>
      

  2.   

    to 1 楼:嗯,确实,是没问题,我的背景色也是#fff(白色,边界设的也是白色),所以没看出来效果。呵呵!to 2楼:确实在不同浏览器下该js效果不同,
    在IE6、IE8、360V6.0.2.202<内核版本:21.0.1180.89>下没问题,但是边界高度比div超出一点点,不知道怎么处理。
    在FF18.0.2下该js没有效果。不知何故!
      

  3.   


    嗯,确实,是没问题,我的背景色也是#fff(白色,边界设的也是白色),所以没看出来效果。呵呵!
    在IE6、IE8、360V6.0.2.202<内核版本:21.0.1180.89>下没问题,但是边界高度比<div id="navParent">自身往下超出一点点,不知道怎么处理。
    在FF18.0.2下该js没有效果。不知何故! 
      

  4.   

    边界高度比<div id="navParent">自身往下超出一点点,我已经解决了,
    还剩一个问题,就是此js:
    <script type="text/javascript">     var getElm = document.getElementById("navParent").getElementsByTagName("LI");     getElm[getElm.length - 1].style.borderRight = "none"; </script>
    在FF下不起作用,高手继续支招!谢谢!
      

  5.   

    <div id="navParent">
       <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
       </ul>
    </div>
    <style>
    li{border:solid 1px black}
    body{background:#eeeeee}
    </style>
    <script language="javascript">
    var getElm = document.getElementById("navParent").getElementsByTagName("LI"); 
    alert(getElm.length)
    getElm[getElm.length-1].style.borderRight = "none";
    </script>
    可以啊,FF12
      

  6.   


    我的js是单独放在一个js文件里调用的,FF不支持这种调用,必须放在本页?
      

  7.   

    如果li里面有内容,有下层嵌套ul li的时候,似乎就失效了,
    是否是因为“因为Firefox会把空格与换行与当成一个节点处理”的原因?
      

  8.   

    我反复测试,该段js放在html本页,则会起作用,alert(getElm.length)能出结果,但是如果是<script type="text/javascript" src="js/func.js"></script>方式被调用则不起作用,alert(getElm.length)不出任何结果。可能正如2#楼所言:“可能就js的位置问题也未可知,也许和浏览器版本有关。 ”另外,如果考虑到li有嵌套ul li时,可能在FF里情况又有不同,麻烦版主继续斧正!感谢!
      

  9.   

    看你另外一个帖子,已经说了怎么获取节点了。firefox下空白节点也算一个节点,只有ie下空白节点不算firefox肯定支持以js文件调用的,你的js文件要放到DOM结构下面,最好是window.onload中执行DOM操作,因为有些时候js放在DOM结构下面可能也会报错。再window.onload中执行DOM操作时,js文件导入的位置可以再html结构前面,下面也行func.js
    window.onload=function(){
    var getElm = document.getElementById("navParent").getElementsByTagName("LI"); 
    alert(getElm.length)
    getElm[getElm.length-1].style.borderRight = "none";
    }
    <script type="text/javascript" src="js/func.js"></script>
    <div id="navParent">
       <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
       </ul>
    </div>
    <style>
    li{border:solid 1px black}
    body{background:#eeeeee}
    </style>
      

  10.   

    版主辛苦,大过年的,让您费心了,我现在好像有点乱了,我在那个帖子把问题重新整理一下。这些问题吧,主要都是不同浏览器兼容性带来的麻烦。http://bbs.csdn.net/topics/390367193