javascript中设置了全局变量但是不管用呢 代码如下:

<scripttype="text/javascript">varstr="";functionlistNode(node,level){printInfo(node,l... <script type="text/javascript">
var str="";
function listNode(node,level)
{
printInfo(node,level);
level++;
var nodess=node.childNodes;
for(var x=0;x<nodess.length;x++)
{
if(nodess[x].hasChildNode())
listNode(nodess[x],level);
else
printInfo(nodess[x],level);
}
}
function getSpace(level){
var s="";
for(var x=0;x<level;x++){
s +="|---";
}
return s;
}
function printInfo(node,level){
str=str+getSpace(level)+"name:"+node.nodeName+"<br/>";
}
function getNodes(){
listNode(document,0);
document.write(str);
}
</script>
</head>
<body>
<input type="button" value="test" onclick="demo()">
有两个问题 !1.node.hasChildNode()这个方法API上是说返回值为true or false 但是我感觉我的if(node.hasChildNode())不执行呢 求教 谢谢你们
2.还有就是我的str 感觉不是全局的 printInfo()和getNodes()里的str感觉不是一个 最后数不出网页的标签呢!!!谢谢你们啊
展开
 我来答
袖之欢
2013-01-20
知道答主
回答量:18
采纳率:0%
帮助的人:15.1万
展开全部
  1. hasChildNode 打错了,是 hasChildNodes

  2. 因为打错了,所以程序报错了;既然报错,程序无法往下执行,也就进不了 else 分支 printInfo(nodess[x],level);str 是全局的


  • 如果你想获取网页的所有标签,可以使用 document.getElementsByTagName('*')

  • 如果你想获取具体某个标签下的所有标签,比如获取 body 下的所有子标签,可以使用 document.body.getElementsByTagName('*')

  • getElement 系列函数返回的都不是数组,而且每次遍历都会重新获取一下,所以建议需要遍历的时候,先转成数组;比如:


            var tags = document.getElementsByTagName('*');

            tags = [].slice.call(tags)

            // 可以接着遍历了

_____God_____
2013-01-19 · TA获得超过1763个赞
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:396万
展开全部
1.node.hasChildNodes()才对,不是Node.
2.function getSpace(level){
var s="";
这里又定义了一次str所以你觉得不是全局的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式