虽然jquery对象是包装DOM对象后产生的,但两者的属性方法并不通用。
为了区分这两种对象,在定义的时候做个区分:
var div = document.getElementsByTagName("div")[0]; var $div = $("div").eq(0); console.log(div == $div);
ps:写到这里我想到前面的jquery noConflict,引入jquery CDN之后,$符号就被占用了,上面这样不会出现什么问题吗?
转而一想,jquery中用到$都是获取对象之类的操作,也就是等号右边的表达式,对于命名中使用$,应该是没有限制的。
DOM对象转化jquery对象
将获得的DOM对象用$()包装即可
var div = document.getElementsByTagName("div")[0]; var $divJ = $(div); $("button").click(function(){ $divJ.slideToggle(400); });
jquery对象转化DOM对象
由于jquery对象本身是一个集合,要获取DOM对象就是获取这个集合的某一项,可以使用索引取出
var $div = $("div").eq(0); var div = $div[0]; $("button").click(function(){ div.innerHTML = "<strong>some sentence</strong>"; });
或者调用jquery提供的get(index)方法
var $div = $("div").eq(0); var div = $div.get(0); $("button").click(function(){ div.innerHTML = "<strong>some sentence</strong>"; });
时间: 2024-10-16 19:49:45