日期:2014-05-16  浏览次数:20469 次

100分求修改js:实现ul中最后一个li的style.borderRight设为none
我的本意是想实现: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";


结果没有实现预期要求,
请问高手,我哪儿写错了,
麻烦帮忙改改!

感谢了!

------解决方案--------------------
经我测试没有问题,

<!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>

------解决方案--------------------
没有问题,可能就js的位置问题也未可知,也许和浏览器版本有关。
------解决方案--------------------
<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
------解决方案--------------------
看你另外一个帖子,已经说了怎么获取节点了。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)