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

判断节点类型:

  1. <body>
  2. <div id="test">aaa</div>
  3. <!--这是一个注释节点-->
  4. <script>
  5. var isElement = function (el){
  6. return !!el && el.nodeType === 1;//注意这个return 和 !!el的判断
  7. }
  8. var a = {
  9. nodeType: 1
  10. }
  11. console.log(isElement(document.getElementById("test")));
  12. console.log(isElement(document.getElementById("test").nextSibling));
  13. console.log(isElement(a));
  14. </script>
  15. </body>

更严谨的判断方法

  1. <body>
  2. <div id="test">aaa</div>
  3. <!--这是一个注释节点-->
  4. <script>
  5. var testDiv = document.createElement('div');
  6. var isElement = function (obj) {
  7. if (obj && obj.nodeType === 1) {//先过滤最简单的
  8. if( window.Node && (obj instanceof Node )){ //如果是IE9,则判定其是否Node的实例
  9. return true; //由于obj可能是来自另一个文档对象,因此不能轻易返回false
  10. }
  11. try {//最后以这种效率非常差但肯定可行的方案进行判定
  12. testDiv.appendChild(obj);
  13. testDiv.removeChild(obj);
  14. } catch (e) {
  15. return false;
  16. }
  17. return true;
  18. }
  19. return false;
  20. }
  21. var a = {
  22. nodeType: 1
  23. }
  24. console.log(isElement(document.getElementById("test")));
  25. console.log(isElement(document.getElementById("test").nextSibling));
  26. console.log(isElement(a));
  27. </script>
  28. </body>

DOM-判断元素节点类型的更多相关文章

  1. DOM基础+domReady+元素节点类型判断

    DOM节点类型  nodeType element  1    Node.ELEMENT_NODE   元素节点 attr  2   Node.ATTRIBUTE_NODE  属性节点 text  3 ...

  2. DOM中元素节点、属性节点、文本节点的理解

    DOM中元素节点.属性节点.文本节点的理解 节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型)  ...

  3. javascript之DOM(一节点类型Node)

    DOM(Document Object Model)是针对HTML和XML文档的一个API.DOM描述的是一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分.起源于DHML,现为W3C的推 ...

  4. 剑指前端(前端入门笔记系列)——DOM(元素节点)

    DOM(元素节点) 本文介绍了元素节点的基本操作:增删改查   增 新增一个元素节点分为两步(二者缺一不可),第一步:创建元素节点,第二步:将创建的元素节点插入到指定元素节点中(也就是插入指定元素节点 ...

  5. DOM中元素节点、属性节点、文本节点

    DOM中有12中节点,但最常用到的是元素节点,属性节点,文本节点. 元素节点的节点类型(nodeType)是1: 属性节点的节点类型(nodeType)是2: 文本节点的节点类型(nodeType)是 ...

  6. DOM中元素节点、属性节点、文本节点的理解13.3

    节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返 ...

  7. DOM中元素节点,属性节点,文本节点的理解

    节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可 ...

  8. DOM与元素节点内联样式

    获取.设置及移除单个内联 CSS 属性 每个 HTML 元素都有个 style 属性,可以用来插入针对该元素的内联 CSS 属性. <div style='background-color:bl ...

  9. DOM模型结构——节点类型

随机推荐

  1. 【转】Android端与Android端利用WIFI进行FTP通信

    原文网址:http://www.cnblogs.com/zhangkai5157/p/4303188.html 一.客户端通信工具类: import java.io.File; import java ...

  2. AJAX异步调用

    前台: function readygo(v) {            $.ajax({                type: "post",                ...

  3. JSTL(fn函数)

    JSTL(fn函数) 首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/js ...

  4. Bootstrap学习笔记上(带源码)

    阅读目录 排版 表单 网格系统 菜单.按钮 做好笔记方便日后查阅o(╯□╰)o bootstrap简介: ☑  简单灵活可用于架构流行的用户界面和交互接口的html.css.javascript工具集 ...

  5. C#-gdi绘图,双缓冲绘图,Paint事件的触发

    一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1  绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...

  6. delphi TClientDataSet 保存到XML

    procedure ExPortNodeQuantifyComponent1(aCDS: TClientDataSet; aCurrNode: TXMLNode); var mStream: TMem ...

  7. 二叉树的基本操作(C)

    实现二叉树的创建(先序).递归及非递归的先.中.后序遍历 请按先序遍历输入二叉树元素(每个结点一个字符,空结点为'='): ABD==E==CF==G== 先序递归遍历: A B D E C F G ...

  8. leetcode:Palindrome Number

    Question: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Cou ...

  9. motan源码解读:注册中心zookeeper(1)

    Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly rel ...

  10. ios开发APP必须要了解的基本配置

    1,配置开发版本 AdHoc开发版,AppStore正式版 2,oc的宏转swift //常量=>ObjectC宏 letLoadingTip="加载中..." letiOS ...