首页 > 其他 > 详细

DOM-判断元素节点类型

时间:2015-08-01 17:01:46      阅读:207      评论:0      收藏:0      [点我收藏+]

http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object/27112297#27112297

 

判断节点类型:

技术分享

 

<body>
    <div id="test">aaa</div>
    <!--这是一个注释节点-->
    <script>
        var isElement = function (el){
            return !!el && el.nodeType === 1;//注意这个return 和 !!el的判断
        }
        var a = {
           nodeType: 1
        }
        console.log(isElement(document.getElementById("test")));
        console.log(isElement(document.getElementById("test").nextSibling));
        console.log(isElement(a));
    </script>
</body>

更严谨的判断方法

<body>
    <div id="test">aaa</div>
    <!--这是一个注释节点-->
    <script>
        var testDiv = document.createElement(div);
        var isElement = function (obj) {
            if (obj && obj.nodeType === 1) {//先过滤最简单的
                if( window.Node && (obj instanceof Node )){ //如果是IE9,则判定其是否Node的实例
                    return true; //由于obj可能是来自另一个文档对象,因此不能轻易返回false
                }
                try {//最后以这种效率非常差但肯定可行的方案进行判定
                    testDiv.appendChild(obj);
                    testDiv.removeChild(obj);
                } catch (e) {
                    return false;
                }
                return true;
            }
            return false;
        }
        var a = {
           nodeType: 1
        }
        console.log(isElement(document.getElementById("test")));
        console.log(isElement(document.getElementById("test").nextSibling));
        console.log(isElement(a));
    </script>
</body>

 

DOM-判断元素节点类型

原文:http://www.cnblogs.com/darr/p/4694172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!