jquery、js对象相互转换
jquery、js对象相互转换

jquery、js对象相互转换

概述

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>

页面结果:

image-20220710205508788

js对象转换成jquery对象

对于已经是一个js对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。

语法:$(js对象)

如:

var v=document.getElementById("v"); //js对象 

var $v=$(v); //jQuery对象

转换后,就可以任意使用jQuery的方法了。

发表回复

您的电子邮箱地址不会被公开。