概述
js类型的对象和jquery类型的对象,是完全不同的两种对象。然而,两种对象的方法并不能相互调用。那么js对象如果想调用jquery里的方法,或者jquery对象想调用js的方法,怎么办?这时候涉及到js对象和jquery对象的相互相互转换的问题。
例如:
①document.getElementById("text").hide();
实现不了,因为hide()是jquery对象的方法,js对象是没办法调用的
②$("#text2").innerHTML = "jredu";
同样也是实现不了,因为innerHTML是js对象的属性,jquery对象是没办法使用的。
那么,接下来给大家介绍一下怎么实现js和jQuery之间的相互转换:
---转换1:jquery对象转换成js对象
---转换2:js对象转换成jquery对象
jquery对象转换成js对象
有两种转换方式将一个jQuery对象转换成js对象:[index]和.get(index);
(1)jQuery对象是一个数据对象,可以通过index]的方法,来得到相应的js对象。
如:
var $v =$("#v") ; //jQuery对象
var v=$v[0]; //js对象
alert(v.checked) //检测这个checkbox是否被选中
(2)jQuery本身提供,通过.get(index)方法,得到相应的js对象
var $v=$("#v"); //jQuery对象
var v=$v.get(0); //js对象
alert(v.checked) //检测这个checkbox是否被选中
(3)jq ---> 特定的jq对象
$v.eq(1).html("content")
(4)each遍历 ---> 在each内部既可以使用js方法,也可以使用jq的形式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>each</title>
</head>
<body>
<div class="box">aa</div>
<ul>
<li>001</li>
<li>002</li>
<li>003</li>
<li>004</li>
<li>005</li>
</ul>
<script src="/js/jquery.js"></script>
<script>
$("ul li").each(function(i){//默认下标
console.log("js打印下标:", i);
console.log("jq获取内容:", $(this).text()); //jq获取内容
console.log("js获取内容:", this.innerHTML); //js获取内容
console.log("jq打印下标", $(this).index()); //jq打印下标
})
</script>
</body>
</html>
页面结果:

js对象转换成jquery对象
对于已经是一个js对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。
语法:$(js对象)
如:
var v=document.getElementById("v"); //js对象
var $v=$(v); //jQuery对象
转换后,就可以任意使用jQuery的方法了。