判断标签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:

http://img.mukewang.com/climg/5dd3dbcc098b08f603860064.jpg

http://img.mukewang.com/climg/5dd3dbf109e75f9e02430058.jpg

所以不会执行if判断。如果按照你原来的代码,全部代码都写在if中,是不会执行的。

2、老师修改之后测试如下,并没有undefined:

http://img.mukewang.com/climg/5dd3dc60099174ba03290513.jpg

可以将自己修改后的代码粘贴上来,老师帮助你测试。

祝学习愉快!

0

好帮手慕星星

2019-11-18

同学你好,traverse函数中将所有操作都放在了if判断中,开始document是没有节点名称的,也就不会进入if判断,执行语句,所以页面中没有输出。参考修改:

if判断中只拼接语句就好

http://img.mukewang.com/climg/5dd216620976072e07600563.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0
hwordkeeper
h 即使这样,我打印出来的结果还是,第一行是undefined。即“undefined”被打印出来到第一行了,这到底怎么回事?
h019-11-19
共2条回复

0 学习 · 40143 问题

查看课程