本文主要内容包括js原生dom对象和jQuery对象的区别,联系,相互转换,以及踩坑经历。状况是这样的,今天在实现一个js验证码的功能,须要获取input的值,而后我用jQuery的方法获取到了dom节点,而后用原生js获取input的值,结果就出错了,好在后来场外求助启宸欧巴在师兄的帮助下发现问题所在,并成功解决。将今天的踩坑经历,以及网上查阅的资料,集合成一篇文章,分享一波。javascript
1.jquery选择器获得的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不一样的对象类型,二者不等价;html
注:js原生获取的dom是一个对象,jQuery对象就是一个数组对象,其实就是选择出来元素的数组集合。因此说他们二者是不一样的对象类型不等价。java
$("#id").html();
document.getElementById("id").innerHTML;
意思是指:获取ID为id的元素内的html代码。这两段代码结果相同,但中间的取值过程不一样。
即:$("#id").innerHTML、document.getElementById("id").html()之类的写法都是错误的。jquery
注:jQuery是从js衍生出来的,师出同源,可是jQuery是通过一系列操做以后,将其封装成了一个个不一样的方法,学习jQuery开始就应当树立正确的观念,分清jQuery对象和DOM对象之间的区别,以后学习 jQuery就会轻松不少的。git
jQuery对象转成DOM对象---两种转换方式:[index]和.get(index)
一、jQuery对象是一个数据对象,经过[index]的方法(就是经过下标索引寻找dom,进行操做)
如:var $v = $("#v") ; //jQuery对象
var v = $v[0]; //DOM对象
alert(v.checked) //检测这个checkbox是否被选中
二、jQuery自己提供,经过.get(index)方法
如:var $v = $("#v"); //jQuery对象
var v = $v.get(0); //DOM对象
alert(v.checked) //检测这个checkbox是否被选中
注:其实二者都是同一个道理,即经过索引下标的方式,来寻找dom进行转换。github
DOM对象转成jQuery对象:
对于DOM对象,只需用$()把DOM对象包装起来,就可获得jQuery对象
如:var v=document.getElementById("v"); //DOM对象
var $v=$(v); //jQuery对象数组
var randomCode=$("#js5-authCode").value;//用jq获取dom,用js获取值。
//console的时候,这里会出现undefined。复制代码
var randomCode=$("#js5-authCode").val();//这里的val()是jq的一种方法。复制代码
$("#id").innerHTML)、document.getElementById("id").html()。框架
出错点:第一个是用jq获取dom,而后用js操做。第二个是用js获取dom,而后用jq进行操做dom
参考资料:
Js - Dom原生对象和jQuery对象的联系、区别、相互转换
DOM对象与jQuery对象的理解与分析函数
最后:但愿看完的朋友点个喜欢,也能够关注一下我,如今这阶段基本上每月都不会少于十五篇文章(看到干货我也会进行分享)。码字不易,感谢支持,感激涕零!
ps:目前待业,坐标北京,求推荐工做。而后但愿我写哪方面的文章能够在底下评论,或者是私信我,虽然写的很差,但我就当这是记录本身成长的一种方式咯。(前提是我会了,若是不会我也会记下来,等会了的时候再更出来。)
掘金我的主页 ,简书主页连接,csdn博客主页连接 ,github 。
以上。2017.4.13