浮若绊笙
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 这是为什么呢
已结找到原因了,换行写就存在了空白节点,这样的话,astchild最后一个节点就不是<li>HTML</li>了,而是一个空白的节点,所以得到的结果就是插入的PHP在 HTML后面
JavaScript进阶篇
469074 学习 · 22582 问题
相似问题