js与jQuery对象相互转换

时间:2023-03-09 09:57:19
js与jQuery对象相互转换
// jQuery-->JavaScript 两种方法:
    $(selector).get(index) ;
    $(selector)[index];  

//  JavaScript-->jQuery 只需要将获取的JavaScript对象用$包装即可
     var obj = document.links;
     $(obj).css("color","red");    

注意点:当jQuery转js对象时, $(selector).get(index) 返回的是单个dom对象,你可以继续用原生js的写法去操作。var obj = $(selector).get(index) ;

obj.style.color = "#f00";

但是,如果忽略index不写,将返回一个dom集合,这时如果进行一些类型上面的操作可能会报错。当然,你还可以借助for循环去对每个元素执行这类操作。

另外,jQuery与原生方法不能混用,比如:$(selector).innerHTML会报错,但是可以出现下面的情况。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <div>this is div</div>
    <p>this is p</p>
</body>
<script src="jquery-1.12.4.min.js"></script>
<script>
    $("div").on("click",function(){
        $(this).html(document.getElementsByTagName("p")[0].innerHTML);
    })
</script>
</html>

还有一个this的区分,$(this)指向当前触发事件的jQuery元素,可调用jQuery方法;

this指向当前触发事件的dom元素,可调用原生方法。