为什么换一种写法,得到的结果不一样

来源:9-13 插入节点insertBefore()

浮若绊笙

2017-07-25 18:11

为什么换一种写法后,输出的结果就不一样了

<ul id="tost"><li>JavaScript</li><li>HTML</li></ul>
	<script>
		var tost = document.getElementById("tost");
		var newnode=document.createElement("li");
		newnode.innerHTML="PHP";
		tost.insertBefore(newnode,tost.lastChild);
	</script>  这个得到的结果是 
	JavaScript
        PHP
        HTML
        换这样写就不一样了
        <ul id="tost">
		<li>JavaScript</li>
		<li>HTML</li>
	</ul>
	<script>
		var tost = document.getElementById("tost");
		var newnode=document.createElement("li");
		newnode.innerHTML="PHP";
		tost.insertBefore(newnode,tost.lastChild);
	</script> 另一种结果
	JavaScript
        HTML
        PHP 这是为什么呢


写回答 关注

1回答

  • 浮若绊笙
    2017-07-25 18:25:21

    已结找到原因了,换行写就存在了空白节点,这样的话,astchild最后一个节点就不是<li>HTML</li>了,而是一个空白的节点,所以得到的结果就是插入的PHP在 HTML后面

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题