jQuery 对象和 DOM 对象是完全不一样的,下面我们先来看一个简单的例子。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
$("div").innerText = "城东书院";
})
</script>
</head>
<body>
<div></div>
</body>
</html>
预览效果如图 1 所示。
咦,怎么回事?$("div").innerText不是用于设置 div 元素内部文本内容的吗?为什么页面没有内容呢?
其实$("div")获取的是一个 jQuery 对象,而 innerText 却是 DOM 对象的属性。jQuery 对象与 DOM 对象是两个完全不同的对象,很多初学者容易忽略这一点。我们把 jQuery 对象比作“张三”,把 DOM 对象比作“李四”,那么 innerText 就是“李四的儿子”。张三(jQuery)怎么可以随便就把李四的儿子(innerText)当成自己的儿子来使唤呢。
小伙伴们一定要记住,如果你获取的是 jQuery 对象,就只能使用 jQuery 的方法;如果你获取的是 DOM 对象,就只能使用 DOM 方法(即原生 JavaScript 方法),两者是不能混用的。
因此,对于上面这个例子,正确的做法有两种:
//方法1:使用jQuery
$("div").text("城东书院")
//方法2:使用DOM
var oDiv = document.getElementsByTagName("div")[0];
oDiv.innerText="城东书院";
总而言之,凡是通过$()获取到的都是 jQuery 对象,必须使用 jQuery 的方法。