[javascript]关于firstChild和lastChild获取到的结果不是想要的节点而是#text的原因和解决方法

复现:##

<ul id="list">
  <li>one</li>
  <li>two</li>
  <li>three</li>
</ul>
<script>
var first=document.getElementById("list").firstChild;
console.log(itm);//#text
var last=document.getElementById("list").lastChild;
console.log(itm);//#text
}
</script>

debug:##

<ul id="list"><li>one</li>
  <li>two</li>
  <li>three</li></ul>
<script>
var first=document.getElementById("list").firstChild;
console.log(itm);//<li>one</li>
var last=document.getElementById("list").lastChild;
console.log(itm);//<li>three</li>
}
</script>

so:问题主要是出自<ul id="list">之后和</ul>之前的“回车”和“空格”字符,复现里面打印出的#text就是这些“回车”和“空格”字符,也称文本节点,它们才是真正意义上的firstChild和lastChild,而不是我们想要获取的li,所以debug中将这些空白字符去掉即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,798评论 0 8
  • 任务描述 基于基础JavaScript练习(一)进行升级 将新元素输入框从input改为textarea 允许一次...
    不喜鹿阅读 625评论 0 0
  • 本篇是基于《JavaScript高级程序设计(第3版)》DOM相关章节做的整理与归纳,概述了DOM的常见节点类型及...
    查查查查查查克阅读 2,555评论 2 7
  • 冰冷与黑暗并存的宇宙中,时间与空间相互交织,时光带动了空间涌动,奔流如河。 ...
    一曲升平阅读 678评论 2 8
  • 文/静和 我深刻地觉得,人一旦闲着,一旦开始没事做,开始感觉到无聊的时候,就会感觉身体有点不自在,紧接着,胃就会很...
    静和queen阅读 1,191评论 6 4