DOM是Document Object Model(文档对象模型)的简写,只有HTML,XML等文档结构的语言才具有DOM。
DOM中的节点通常分为三种类型:元素节点,属性节点,文本节点。
1.元素节点:<html>,<body>,<p>,<ul>,<img>,<li>等标签形式的节点就称为元素节点。
2.属性节点:例如,<img>元素中的src,alt就是属性节点。
3.文本节点:就是指HTML中的文字内容。如<span>hello world</span>,其中hello world就是文本节点。
DOM对象:
var dom = document.getElementById("myDog"); //获取DOM对象
var html = dom.innerHTML; //dom对象使用JavaScript中的属性
Jquery对象:
var dom = $("#myDog"); //等价于 document.getElementById("myDog");
var html = dom.html(); //等价于dom.innerHTML;
DOM对象的方法/属性和jQuery对象的方法/属性是彼此独立的。即DOM对象只能使用DOM对象的方法/属性,而jQuery对象只能使用jQuery对象的方法/属性。例如:DOM对象可以使用DOM对象拥有的 innerHTML属性,但不能使用jQuery对象拥有的html()方法。
DOM和jQuery对象之间的相互转换:
(1)DOM对象转为jQuery对象:
var dom = document.getElementById("myDog"); //DOM对象
var $jqObject = $(dom); //通过$()将DOM对象转为jQuery对象。
其中$()称为jQuery工厂。
(2)jQuery对象转为DOM对象:
将jQuery对象转为DOM对象。jQuery对象的本质是一个类似数组或集合的对象,而DOM对象的本质是一个普通对象。因此jQuery对象转为DOM对象的本质,就是将一个数组和集合转为一个普通对象。
方法一:将jQuery对象看成一个数组,通过使用数组下标的方式转为DOM对象,例如:
var $JObject = $("#mydog"); //获得jQuery对象
var jsObject = $JObject[0]; //转为Dom对象
方法二:将jQuery对象看成一个集合,通过使用get(index)的方式转为DOM对象,例如:
var $JObject = $("#mydog"); //获得jQuery对象
var jsObject = $JObject.get(0); //转为Dom对象