一段简单js代码的问题

xiaofen8 2012-09-02 04:18:22

<html>
<head>
<!--省略了topic和htopic的定义-->
</head>
<body>
<div id="main">
<div class="topic">
</div>
<div class="htopic">
<div class="topic">
</div>
<div class="htopic">
</div>
</div>
</div>
</body>
</html>


function mgoto(index)
{
var usrcon = document.getElementById("main").childNodes[1];

for (var i = 0; i < usrcon.childNodes.length; ++i)
if (i == index)
usrcon.childNodes[i].className = topic;
else
usrcon.childNodes[i].className = htopic;
}

我刚开始接触js,搞不懂为什么这段js代码会报错?求各位解释一下
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
不是说标准啥的,反正就是浏览器兼容性的问题。其他的对这个操作有差异性的

还是用getElementsByTagName代替节点操作吧
xiaofen8 2012-09-02
  • 打赏
  • 举报
回复
问题解决了,谢谢你
childNodes不是标准的吗?
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
为了多浏览器兼容,你还是用这个吧

function mgoto(index)
{
//查找id=main下的第2个div下的所有div
var usrcon = document.getElementById("main").getElementsByTagName("div")[1].getElementsByTagName("div");
for (var i = 0; i < usrcon.length; ++i)
{
usrcon[i].className=(i== index)?'topic':'htopic';
}
}
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
我晕死,你那哪叫定义呀??你那只是css样式定义而已,改成下面的才对
usrcon.childNodes[i].className = 'topic';
else
usrcon.childNodes[i].className = 'htopic';
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
你如果下面的 topic 和 htopic 定义好了的话,不会报错吧。如果没定义的话,那肯定报错:''未定义
usrcon.childNodes[i].className = topic;
else
usrcon.childNodes[i].className = htopic;
xiaofen8 2012-09-02
  • 打赏
  • 举报
回复
.topic{
float:right;
width:600px;
height:400px;
background:white;
}

.htopic{
display:none;
float:right;
width:600px;
height:400px;
background:#FFFAF4;
}

topic和htopic没有问题的,都有用过,就是onclick="mgoto(0到1)"说网页有错误
xiaofen8 2012-09-02
  • 打赏
  • 举报
回复
我那段js代码的语法有问题吗?我的ie浏览器说网页有错误
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
你要是把:
<div id="main">
<div class="topic">
</div>
<div class="htopic">
<div class="topic">
</div>
<div class="htopic">
</div>
</div>
</div>


改成:

<div>
<div class="topic">
</div>
<div id="main" class="htopic">
<div class="topic">
</div>
<div class="htopic">
</div>
</div>
</div>


操作会更简便
泡泡鱼_ 2012-09-02
  • 打赏
  • 举报
回复
报错??你是说不兼容吧??

如果topic和htopic你定义好了的话,那么:
function mgoto(index)
{
//查找id=main下的第2个div下的所有div
var usrcon = document.getElementById("main").getElementsByTagName("div")[1].getElementsByTagName("div");
for (var i = 0; i < usrcon.length; ++i)
{
usrcon[i].className=(i== index)?topic:htopic;
}
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧