为了账号安全,请及时绑定邮箱和手机立即绑定

访问父节点一节有几个问题

访问父节点的几个疑问。

http://img1.sycdn.imooc.com//5716457e00011fa003850441.jpg

这是练习题的代码。里面父节点parentNode叠加了好几个,那么firstchild和latChild能不能叠加?

我只想输出ul标签内的“文字 段落”这几个内容该如何写代码?innerHTML换成value 的结果是0,怎么理解?  谢谢各位大神了!

正在回答

1 回答

firstChild.firstChild是可以用的,但是这里会出现空白文本节点的情况,所以你这样的结果访问的是空白文本节点

<!DOCTYPE HTML>
<!--
..清除空白的文本节点
function cleanWhitespace(element)
{
    for(var i=0; i<element.childNodes.length; i++)
    {
        var node = element.childNodes[i];
        if(node.nodeType == 3 && !/\S/.test(node.nodeValue))
        {
            node.parentNode.removeChild(node);
        }
    }
}
-->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
</head>
<body>
<ul id="con">
    <li id="lesson1">javascript
        <ul>
            <li id="tcon"> 基础语法</li>
            <li>流程控制语句</li>
            <li>函数</li>
            <li>事件</li>
            <li>DOM</li>
        </ul>
    </li>
    <li id="lesson2">das</li>
    <li id="lesson3">dadf</li>
    <li id="lesson4">HTML/CSS
        <ul>
            <li>文字</li>
            <li>段落</li>
            <li>表单</li>
            <li>表格</li>
        </ul>
    </li></ul>
<script  type="text/javascript">
    var mylist = document.getElementById("tcon");
    var myul=mylist.parentNode.parentNode.parentNode;
    var myli=myul.lastChild.childNodes[1].childNodes;
/*    document.write(myli[0].nodeValue);
    document.write(myli[1].nodeValue);
    document.write(myli.length);*/
    document.write(myli.length);//输出结果为9,包含空白的文本节点
    document.writeln(myli[1].innerHTML);
    document.writeln(myli[3].innerHTML);
</script>

</body>
</html>


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468190    人
  • 解答问题       21891    个

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

进入课程

访问父节点一节有几个问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信