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

为什么使用getElementsByClassName,获取不到下面的子节点

为什么使用getElementsByClassName,获取不到下面的子节点

jugge 2017-03-08 16:18:13
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var div1=document.getElementsByClassName('content').childNodes; console.log(div1); </script> </head> <body> <div class="content"> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> </div> </body> </html>
查看完整描述

2 回答

?
console_man

TA贡献3条经验 获得超5个赞

获取不到是因为js代码执行时文档还未加载完成,试试下面这种写法:window.onload 意思为等待文档加载完成后再执行js代码块

window.onload =function() {
     var div1=document.getElementsByClassName('content').childNodes;
     console.log(div1);
}

查看完整回答
1 反对 回复 2017-03-08
?
jugge

TA贡献5条经验 获得超0个赞

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            var content=document.getElementsByClassName('content');
            console.log(content.length);//长度应该为1,但是显示为0
        </script>
    </head>
    <body>
        <div class="content">
            <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
        </div>
    </body>
</html>


查看完整回答
反对 回复 2017-03-08
?
o_n

TA贡献56条经验 获得超20个赞

因为在html代码部分里主要内容是一个div标签,设置了一个class=“content”来标注这个div。那么在JS中可以通过ClassName类名来获取这个div

查看完整回答
反对 回复 2017-03-08
  • jugge
    jugge
    var div1=document.getElementsByClassName('content'),通过这个可以获取到div,但是再通过这个div获取下面的字节点获取不到,提示. div1.getElementsByTagName('ul'),就会提示未定义
  • jugge
    jugge
    正常只有一个div,那获取到这个DIV节点,应该是document.getElementsByClassName('content')[0],但是也是直接提示
  • o_n
    o_n
    删掉.childNodes就好了
点击展开后面1
  • 2 回答
  • 0 关注
  • 9428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信