zoukankan      html  css  js  c++  java
  • DOM-判断元素节点类型

    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>
  • 相关阅读:
    16位汇编第一讲简介
    COM编程_第一讲_深入COM框架以及实现简单的COM
    COM_第四讲_保存GUID_优化使用代码
    C语言_第二讲_规范以及常用数据类型
    C语言_第一讲_C语言入门
    计算机基础知识_原码反码补码
    计算机基础知识_进制转化
    计算机基础知识_硬件知识
    试题总结2
    试题总结1
  • 原文地址:https://www.cnblogs.com/darr/p/4694172.html
Copyright © 2011-2022 走看看