问:
<div id="test"></div>
$("#test") //由Javascript对象转为Jquery对象; 但是如何转回去呢???这样就可以使用Javascript对象所拥有的属性来实现一些功能。
下面2位说的都不错,但是有的时候用JQ会更方便一些,但有些属性只有JS有,所以我想转回去,请高手们指点
答1:
$("#test") //jQuery对象
$("#test")[0] //jQuery对象->原生的DOM对象
$($("#test")[0]) //DOM对象->jQuery对象(有点绕,但只要明白使用$()后能将原生的DOM对象封装成jQuery对象即可)
答2:
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如: 1. $("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5] 这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的: 1. $("#msg").html();
2. $("#msg")[0].innerHTML;
3. $("#msg").eq(0)[0].innerHTML;
4. $("#msg").get(0).innerHTML;
参考资料: http://www.ccvita.com/192.html
原文如下:
jQuery对象与dom对象的转换
最近在闲暇时间用jQuery搞了一个多文件上传的东东,顺便写点笔记。
一直以来对于通过jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,开始的时候不理解,现在此案知道,原来jQuery获得的对象并不和我们平时使用getElementById获得的对象是一样的对象。所以一些新手就很迷惑,为什么${"#Element"}不能直接innerHTML,这就是原因所在,解决方式请看下文。
jQuery对象与dom对象的转换
只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:
$(document.getElementById("msg"))
则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:
$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]
这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的:
$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;