判断标签tagName为空有问题,总是通过不了判断
来源:7-7 编程练习
swordkeeper
2019-11-18 10:10:23
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>节点遍历</title>
</head>
<body>
<div>
<p>
<span>
<a href=""></a>
<a href=""></a>
<a href=""></a>
</span>
<span>
<a href=""></a>
<a href=""></a>
<a href=""></a>
</span>
<span>
<a href=""></a>
<a href=""></a>
<a href=""></a>
</span>
</p>
</div>
<script>
// 此处补充代码
var txt = "";
function traverse(space, node){
if(node.tagName){
// if(node.tagName!="undefined"&&node.tagName!=null){
// alert(node.tagName)
txt += (space + node.tagName + "<br/>");
var len = node.childNodes.length;
for(var i = 0; i< len ;i ++){
traverse(space+"* ",node.childNodes[i]);
}
}
}
traverse("", document);
document.write(txt);
</script>
</body>
</html>
求老师指导Orz
2回答
好帮手慕星星
2019-11-19
同学你好,问题解答如下:
1、之前回复中老师说过了,一开始传入的是document,是没有节点名称的,也就是tagName为undefined:
所以不会执行if判断。如果按照你原来的代码,全部代码都写在if中,是不会执行的。
2、老师修改之后测试如下,并没有undefined:
可以将自己修改后的代码粘贴上来,老师帮助你测试。
祝学习愉快!
好帮手慕星星
2019-11-18
同学你好,traverse函数中将所有操作都放在了if判断中,开始document是没有节点名称的,也就不会进入if判断,执行语句,所以页面中没有输出。参考修改:
if判断中只拼接语句就好
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题