一个关于for循环的问题。

先上代码:

<script>
	window.onload=function () {
		changestyle()
	}
	function changestyle(){
		var mystyle = document.getElementsByTagName('a');
		for (var i = 0; i < mystyle.length; i++) {
			document.write(mystyle[i].innerHTML);
		}
	}

</script>
</head>
<body>
	<ul>
		<li><a href="#">首    页</a></li>
		<li><a href="#">新闻快讯</a></li>
		<li><a href="#">产品展示</a></li>
		<li><a href="#">售后服务</a></li>
		<li><a href="#">联系我们</a></li>
	</ul>
</body>

问题是这样的,我想用一个for循环输出a标签下的内容,预想的效果是这样的:

首页
新闻快讯
产品展示
售后服务
联系我们

但是我输出了的结果却是:

首页

想请问这个是哪里出了问题。。。

恳请各位看官指导。。谢谢各位

卡迪亚兹
浏览 1488回答 2
2回答

莲花寺的慧觉

当第一次调用document.write的时候,整个文档被覆盖,并写入了第一个<a>元素里的文本,也就是“首页”;第二次以后,之前引用的另外4个<a>元素就不存在了,故而什么都没发生。要解决这个问题,就是你在使用document.write之前,用一个变量保存所有的文本,然后一次性输出。如:<script>     window.onload=function () {         changestyle()     }     function changestyle(){         var mystyle = document.getElementsByTagName('a');         var text = '';         for (var i = 0; i < mystyle.length; i++) {             text = text + '<div>' + mystyle[i].innerHTML + '</div>'         }        document.write(text);     }   </script>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript