DOM-判断元素节点类型
2015-08-01 15:32
489 查看
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>
相关文章推荐
- java 面向对象基础1
- hibernate中的session缓存的常用方法
- [odroid-pc] ubuntu12.o4编译烧写android4.0 forodroidpc
- Isomorphic Strings
- 数据库提高查询效率(较大数据)优化方法
- JavaWeb_数据传输_原
- 【ASP.NET】——AdRotator控件
- hdu5334
- POJ 2231 Moo Volume
- static的作用(c)
- 重定向控制台程序的输入输出
- 使用Facebook方法处理复杂问题
- 黑马程序员——15,String,StringBuffer,基本数据类型包装对象
- iOS中判断两个圆是否重叠
- 第七章习题G题
- (回溯法)数组中和为S的N个数
- MyEclipse优化
- 给出一棵二叉树的根节点和其中两个不同的节点求出它们最近的公共祖先节点
- win8.1升级win10后只有edge浏览器能上网该怎么办?
- 逆波兰表达式求值(Evaluate Reverse Polish Notation)