dom 是文档对象模型,比如 html 是树结构的,操作 dom 就是操作这颗树:
<html>
<body>
<p><i>123</i></p>
<a>百度</a>
</body>
</html>
树结构:
html
|
body
|
------------
||
a p
||
百度i
|
123
dom 你可以操作 html 这颗树,也可以去操作另一颗树,比如:xml,而不管你是在浏览器中还是在其他环境中运行js,都能操作,因为你不依赖浏览器特有的东西。
js里面几乎一切皆对象(有个例外),但是人家是说的 js 语法里面的对象,和 dom、bom对象不是一个概念,你在拿两个世界里面不同的东西做比较,虽然他们都叫对象。。
var i = window.Number//i变量 = 一个bom对象中的值
i 是一个变量,同时也是一个js里面所谓的对象,现在是让 js 变量 i 值为 window.Number
var j = document.getElementById("menu")//获得html中id为menu的标签,将其存入变量j 里面供接下来其他操作
这里 j 依然是一个 js 对象,后面 ById 取得的是一个 dom 对象
j值 = ById值
j对象 不等于 ById对象
js 即 JavaScript ,是一种网页脚本语言,可以在网页上实现一些动态效果。DOM 是HTML文档结构,其实就是为了能让js操作html元素而制定的一个规范,dom 的根本就是 document 对象,改对象有很多属性和方法,例如创建节点、复制节点、移除节点、修改属性等。
我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeType属性,有tagName属性,等等。判断的特征越多,也就越可靠,因为毕竟我们自定义的js对象也可以有那些属性。还有其他方法吗?
在DOM
Level2标准中定义了一个HTMLElement对象,它规定所有的DOM对象都是HTMLElement的实例,所以我们可以利用这点来判断一个对象是不是DOM对象:如果该对象是HTMLElement的实例,则它肯定是一个DOM对象。在不支持HTMLElement的浏览器中我们则还是使用特征检测法。
<script
type="text/javascript">
//首先要对HTMLElement进行类型检查,因为即使在支持HTMLElement
//的浏览器中,类型却是有差别的,在Chrome,Opera中HTMLElement的
//类型为function,此时就不能用它来判断了
var
isDOM
=
(
typeof
HTMLElement
===
'object'
)
?
function(obj){
return
obj
instanceof
HTMLElement
}
:
function(obj){
return
obj
&&
typeof
obj
===
'object'
&&
obj.nodeType
===
1
&&
typeof
obj.nodeName
===
'string'
}
</script>
以上就是小编为大家带来的如何判断出一个js对象是否一个dom对象全部内容了,希望大家多多支持脚本之家~