在使用DOM操作HTML文档中,用javascript编写的代码中:请问这两段代码的对比有什么区别?
前面的省略了……1.varchildrens=node.chilerens;for(vari=0;i<childrens.length;i++){vartotal+=co...
前面的省略了……
1.
var childrens=node.chilerens;
for(var i=0;i<childrens.length;i++)
{
var total+=countTotalElement(childrens[i]);
}
2.
for(var m=node.firstChild;m!=null;m=m.nextSibling)
{
var total+=countTotalElement(m);
}
原来的代码是这样的,只是想知道这两个for循环到底有什么区别?不过想请问一下有逻辑错误码?但是我运行时可以执行啊……
<script type="text/javascript">
var elementName="";//全局变量,保存Element标记名,使用完毕后要清空
function countTotalElement(node)//参数node是一个Node对象
{
var total=0;
//检查node是否为Element对象
if(node.nodeType==1)
{
//如果是,计算器加1
total++;
//保存标记名
elementName+=node.tagName+"\r\n";
}
//(方法一:)
//获取node的全部子节点
<%--var allChildNodes=node.childNodes;
for(var i=0;i<allChildNodes.length;i++)
{
//在每个子节点上进行递归操作
total+=countTotalElement(allChildNodes[i]);
}
--%>
//(方法二:)
for(var m=node.firstChild;m!=null;m=m.nextSibling)
{
total+=countTotalElement(m);
}
return total;
}
</script> 展开
1.
var childrens=node.chilerens;
for(var i=0;i<childrens.length;i++)
{
var total+=countTotalElement(childrens[i]);
}
2.
for(var m=node.firstChild;m!=null;m=m.nextSibling)
{
var total+=countTotalElement(m);
}
原来的代码是这样的,只是想知道这两个for循环到底有什么区别?不过想请问一下有逻辑错误码?但是我运行时可以执行啊……
<script type="text/javascript">
var elementName="";//全局变量,保存Element标记名,使用完毕后要清空
function countTotalElement(node)//参数node是一个Node对象
{
var total=0;
//检查node是否为Element对象
if(node.nodeType==1)
{
//如果是,计算器加1
total++;
//保存标记名
elementName+=node.tagName+"\r\n";
}
//(方法一:)
//获取node的全部子节点
<%--var allChildNodes=node.childNodes;
for(var i=0;i<allChildNodes.length;i++)
{
//在每个子节点上进行递归操作
total+=countTotalElement(allChildNodes[i]);
}
--%>
//(方法二:)
for(var m=node.firstChild;m!=null;m=m.nextSibling)
{
total+=countTotalElement(m);
}
return total;
}
</script> 展开
展开全部
var total+=countTotalElement(childrens[i]);
这句话都是错误的。。。。哪有你这么写的?
total变量定义在外部,+=只能是针对已经存在的变量操作,不能又在定义又在+=;
另外,var childrens=node.chilerens;也有问题
var childrens=node.children;
firstChild是指第一个孩子节点
nextSibling是指下一个兄弟节点(从网页的上面到下面,或者说前面到后面,按照书写顺序来定)。
=============================
从你补充的内容来看,连个的方法是差不多的,一个是通过孩子节点集合的方式来找,一个是通过dom内置的节点之间关系来找效果一样的。
举一个例子吧,
你的第一种方法相当于是知道一家人一共有多少个孩子,他们站在一排,都有一个编号,通过编号来遍历他们;
第二种方法是,不让他们站在一排,而是找了老大找老二,找到老二根据老二找他下一个弟弟,找到下一个了再根据下一个找他的弟弟,这样循环就找完了。
这句话都是错误的。。。。哪有你这么写的?
total变量定义在外部,+=只能是针对已经存在的变量操作,不能又在定义又在+=;
另外,var childrens=node.chilerens;也有问题
var childrens=node.children;
firstChild是指第一个孩子节点
nextSibling是指下一个兄弟节点(从网页的上面到下面,或者说前面到后面,按照书写顺序来定)。
=============================
从你补充的内容来看,连个的方法是差不多的,一个是通过孩子节点集合的方式来找,一个是通过dom内置的节点之间关系来找效果一样的。
举一个例子吧,
你的第一种方法相当于是知道一家人一共有多少个孩子,他们站在一排,都有一个编号,通过编号来遍历他们;
第二种方法是,不让他们站在一排,而是找了老大找老二,找到老二根据老二找他下一个弟弟,找到下一个了再根据下一个找他的弟弟,这样循环就找完了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询