搜索
javascript - js操作节点,只能通过getElementsByTagName,却不能通过childNodes来操作节点??
怪我咯
怪我咯 2017-04-10 16:24:27
[JavaScript讨论组]
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
 
<body>
            <p ></p>
      
</body>
</html>
        //常用的获取节点 操作节点方法
       <script>
           var ht = document.getElementsByTagName("html");
            //改变html对象的背景色
           ht[0].style.backgroundColor= "#000";   //可以改变背景为黑色;
 
             // 用childnodes, 操作节点
              var ddd = document.firstChild;
                 ddd..style.backgroundColor= "#000";   //啥也没改变;
                 </script>

用getElementsByTagName取得的节点对象可以绑定事件 如

                  ht[0].onclick = function(){};
           用用childnodes, 取得的节点 不能绑定事件?仅仅能获取到节点名而已?其他啥也不能做?
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
怪我咯

console.log(document.firstChild) 看看是啥你就知道了。

大家讲道理

Node是一个接口,从文档的结构角度来看的;
Document, Element, CharacterData, ProcessingInstruction, DocumentFragment, DocumentType, Notation, Entity, EntityReference都node的子类型

并不说说node(子类型)不能绑定事件,而是有些类型的node不可见,不支持事件绑定,

<html>
<head>
    <meta charset="utf-8">
    <title>无标题文档</title>
</head>

<body>
    <p >1213112</p>
    <script>
        var bodyelement= document.getElementsByTagName("body")[0];
        //bodyelement.childNodes[0] bodyelement.firstChild是一个文本节点
        for (var i = 0; i < bodyelement.childNodes.length; i++) {
           console.log(bodyelement.childNodes[i].nodeName);
        }
        //绑定事件到p上
        bodyelement.childNodes[1].addEventListener('click',function(event){
            console.log(event.target.tagName);//
        },false);
    </script>
</body>
</html>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号