关于childnodes的length属性

pkuxmuflsk 2011-11-15 01:53:41
小弟学习javascript的权威指南,有如下代码
<html>
<head>
<script>
function upcase(n)
{
if(typeof n==3)
{
n.data=n.data.toUpperCase();
}
else
{
kids=n.childNodes;
for(var i=0;i<kids.length;i++)
{
upcase(kids[i]);
}
}
}
</script>
</head>
<body>
<ul id='list'>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
</ul>
<button onclick="upcase('list')">Upcase</button>
</body>
</html>

但是执行的时候却报错"kids.length对象为空或不是对象",小弟百思不得其解,请求给位帮助下,谢谢
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
三石-gary 2011-11-15
  • 打赏
  • 举报
回复
解决方法共享下。。
pkuxmuflsk 2011-11-15
  • 打赏
  • 举报
回复
啊,我就是想把里面的Text都编程大写,我已经搞定了,感谢您的回复![Quote=引用 4 楼 liangws 的回复:]

楼主究竟想做什么??
[/Quote]
liangws 2011-11-15
  • 打赏
  • 举报
回复
楼主究竟想做什么??
pkuxmuflsk 2011-11-15
  • 打赏
  • 举报
回复
原来如此,那我如何修改,我改成如下代码,还是不行啊?!

<html>
<head>
<script>
function upcase(n)
{
if(typeof n=='string')
{
n=document.getElementById(n);
}
if(typeof n==3)
{
n.data=n.data.toUpperCase();
}
else
{
kids=n.childNodes;
for(var i=0;i<kids.length;i++)
{
upcase(kids[i]);
}
}
}
</script>
</head>
<body>
<ul id='list'>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
</ul>
<button onclick="upcase('list')">Upcase</button>
</body>
</html>
[Quote=引用 2 楼 liangws 的回复:]

upcase('list')这样传参进去。。
n被赋值为"list"整个字符串
n.childNodes返回的必然为undefined啊。。肯定会报错的。楼主确定代码是对的?
[/Quote]
liangws 2011-11-15
  • 打赏
  • 举报
回复
upcase('list')这样传参进去。。
n被赋值为"list"整个字符串
n.childNodes返回的必然为undefined啊。。肯定会报错的。楼主确定代码是对的?
默默不得鱼 2011-11-15
  • 打赏
  • 举报
回复
你的参数怎么是字符串

87,992

社区成员

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

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