章节
问答
课签
笔记
评论
占位
占位

访问子节点的第一和最后项

一、firstChild 属性返回‘childNodes’数组的第一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

语法:

node.firstChild

说明:与elementNode.childNodes[0]是同样的效果。 

二、 lastChild 属性返回‘childNodes’数组的最后一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

语法:

node.lastChild

说明:与elementNode.childNodes[elementNode.childNodes.length-1]是同样的效果。 

注意: 上一节中,我们知道Internet Explorer 会忽略节点之间生成的空白文本节点,而其它浏览器不会。我们可以通过检测节点类型,过滤子节点。 (以后章节讲解)

 

任务

试一试,找到指定元素(div)的第一个和最后一个子节点。

1. 第15行输出指定元素(div)的第一个子节点。

2. 第16行输出指定元素(div)的最后一个子节点。

3. 也许结果和你想象的不一样,试着调整代码,输出正确代码。

 

 

?不会了怎么办

1. document.write(x.firstChild.nodeName+"<br>");

2. document.write(x.lastChild.nodeName+"<br>");

3. 将 HTML 调整成 <div><p>javascript</p><div>jQuery</div><h5>PHP</h5></div>

||
1
2
<!DOCTYPE HTML>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最赞回答 / 木城武
请查看上一节讲解的最后部分。一句话总结:如果不调整为同一行,那么除IE以外的浏览器,firstChild和lastChild都是空白节点,所以输出结果是#text------------------------以下复制于上一节最后的讲解--...

最新回答 / qq_慕仔8246189
elmentNode 表示任意节点 . childNodes表示一大堆子节点,形成了一个数组 所以 elementNode.childNodes[0]  表示 任意节点的子节点组成的数组中的第一个孩子

最新回答 / 一只小白鼠i
就是这样哦,因为getElementsByTagName(“”),getElementsBysName(“”)返回的数组类型哦

最新回答 / 筱熙X
我看错了,不好意思

最新回答 / 宝慕林6934861
返回的应该是一个对象类型吧 你应该再加后缀x.firstChild.nodeName  /Type / Value

最赞回答 / _Doogie
建议重新看看getElementById的用法,获取返回的是一个节点,没有啥length,不需要循环,不用加for循环直接输出即可,正确写法:<...code...>

已采纳回答 / 爱前端的小鑫
getElementsByTagName  你打错了?

最新回答 / qq_慕慕947699
zj.firstChild ==>x.firstChild ;firstChild 属性返回‘childNodes’数组的第一个子节点

最赞回答 / 慕工程4157871
不应该是x.length 而是 x.childNodes.length

已采纳回答 / 吴量
childNodes 拿到的是第一个元素,你的firstChild拿到的是x与第一个p标签之间的换行符,document.write(x.firstElementChild.nodeName+"<br>");  这样你可以得到你想要的结果

最新回答 / 狼王梦0_0
不知道你们说的啥?没有nodeName,那么返回的就是一个节点,其中包含了前几节所学的那些属性啥的!!!所以你如果直接输出其会是这样:[object HTMLParagraphElement]    [object HTMLHeadingElement]

已采纳回答 / qq_浩然_9
这就是和数组一样var array = new Array{1,2,3,4};array.length=4;但是取最后一个值,却是array[3];因为第一个值的下角标是0开始的。

最赞回答 / bao_
非常棒!

最新回答 / 狼王梦0_0
这是因为,你document.write()就是向DOM节点中写入内容的函数,你又在里面加一个修改DOM的innerHtml所以其无法解析!!!
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言