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

<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感觉不是一个 最后数不出网页的标签呢!!!谢谢你们啊

    hasChildNode 打错了,是 hasChildNodes

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


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

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

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


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

            tags = [].slice.call(tags)

            // 可以接着遍历了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-19
1.node.hasChildNodes()才对,不是Node.
2.function getSpace(level){
var s="";
这里又定义了一次str所以你觉得不是全局的

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网