刚开始学习JQuery,经常分不清楚哪些是JQuery对象,哪些是DOM对象,了解它们之间的关系是很有必要的。
1、DOM对象和JQuery对象的区别
1) DOM对象
DOM是Document Object Model,即文档对象模型的缩写。DOM是以层次结构组织的节点或信息片段的集合,每一份
DOM都可以表示成一个树。
如:
<html>
<head>
<title>标题内容</title>
</head>
<body>
<p>测试文本</p>
</body>
</html>
上面<html>是DOM树的根元素,其他是根下面的元素(<head>、<body>)等
2) JQuery对象
JQuery对象是通过JQuery包装DOM对象后产生的对象,JQuery对象是独有的,可以使用JQuery的方法
如:
$('#test').html();
等价于DOM中的:
document.getElementById("test").innerHTML;
虽然JQuery对象是包装DOM对象后产生的,但是JQuery无法使用DOM对象的任何方法,同理,DOM对象也不能使用JQuery对象方法。
注:
$('#test') 这样获取的是JQuery对象,document.getElementById("test") 获取的是DOM对象,它们不是等价的。
2、DOM对象和JQuery对象的相互转换
1)JQuery对象转化为DOM对象
var $mr = $('#mr'); //JQuery对象
var mr1 = $mr[0]; //DOM对象
var mr2 = $mr.get(0); //DOM对象
alert(mr1.value); //弹出DOM对象元素的值
2)DOM对象转化为JQuery对象
var mt = document.getElementById("mt"); //DOM对象
var $mt = $(mr); //JQuery对象
alert($mt.val()); //弹出JQuery对象的值
如:
<script>
$(document).ready(function(){
var domObj = document.getElementById("mr");
alert("使用DOM方法获取节点mr的内容:" + domobj.innerHTML);
var $jqueryObj = $(domObj); //转化为Jquery对象
alert("使用JQuery方法获取节点mr的内容:" + $jqueryObj.html());
})
</script>