js与jQ获取对象的区别
来源:神衣
浏览: 927 次         0   发表时间:2021-03-02 11:30:15

    最近写代码,原始js与jQ之间用得比较杂乱,概念也给整模糊了。百度仔细学习了一下,觉得这边文章写得清晰,于是记录下来供日后参考。

    document.getElementById()返回的是DOM对象,而$()返回的是jQuery对象。例如:$('#test'):是一个jquery写法,#test是一个过滤器表示方法,表示查找一个id是test的节点,返回的是一个数组对象,数组的[0]表示dom节点。document.getElementById('test'):表示从document中查找一个id是test的dom节点。

    document.getElementById("id") 与$("#id")并不等价。但是:document.getElementById("id") = $("#id")[0]。

    jQuery对象是jQuery独有的,其可以使用jQuery里的方法。虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法
    例如:html()是jQuery里的方法。innerHTML是DOM对象的属性。

    $('#test').html() = document.getElementById("id") .innerHTML;

DOM对象转jQuery对象 
普通的Dom对象一般可以通过$()转换成jQuery对象。 
如:$(document.getElementById("test")) 。返回的就是jQuery对象,可以使用jQuery的方法。 
jQuery对象转DOM对象 
jQuery对象是一个数组对象,可以通过[index]的方法,来得到相应的DOM对象。
另外、jQuery本身提供,通过.get(index)方法,得到相应的DOM对象
如: $("#test")[0],$("div").eq(1)[0],$("td")[5] 、$("#test").get(0)。这些都是Dom对象,可以使用Dom中的方法,但不能再使用jQuery的方法。 
以下几种写法都是正确的: 

$("#test").html(); 
$("#test")[0].innerHTML;
$("#test").eq(0)[0].innerHTML;
$("#test").get(0).innerHTML;

参考:百度文章https://blog.csdn.net/qingdatiankong。


<<   上一篇:   html之标签form不能嵌套
>>   下一篇:   ENVI5.3改变影像背景值
相关推荐
    暂无相关的推荐...
相关资讯
    暂无相关的资讯...