js原生dom对象和jQuery对象可以混合使用吗?

简介: 写在前面:本文主要内容包括js原生dom对象和jQuery对象的区别,联系,相互转换,以及踩坑经历。情况是这样的,今天在实现一个js验证码的功能,需要获取input的值,然后我用jQuery的方法获取到了dom节点,然后用原生js获取input的值,结果就出错了,好在后来场外求助启宸欧巴在师兄的帮助下发现问题所在,并成功解决。将今天的踩坑经历,以及网上查阅的资料,集合成一篇文章,分享一波。Dom原生对象和jQuery对象的区别:1.jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类

写在前面:

本文主要内容包括js原生dom对象和jQuery对象的区别,联系,相互转换,以及踩坑经历。情况是这样的,今天在实现一个js验证码的功能,需要获取input的值,然后我用jQuery的方法获取到了dom节点,然后用原生js获取input的值,结果就出错了,好在后来场外求助启宸欧巴在师兄的帮助下发现问题所在,并成功解决。将今天的踩坑经历,以及网上查阅的资料,集合成一篇文章,分享一波。




Dom原生对象和jQuery对象的区别:


1.jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价

注:js原生获取的dom是一个对象,jQuery对象就是一个数组对象,其实就是选择出来元素的数组集合。所以说他们两者是不同的对象类型不等价。

2.jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。


例如(文章下面有两个踩坑经历。):

  $("#id").html();

  document.getElementById("id").innerHTML;

  意思是指:获取ID为id的元素内的html代码。这两段代码结果相同,但中间的取值过程不同

  即:$("#id").innerHTML、document.getElementById("id").html()之类的写法都是错误的。

注:jQuery是从js衍生出来的,师出同源,但是jQuery是经过一系列操作之后,将其封装成了一个个不同的方法,学习jQuery开始就应当树立正确的观念,分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。


js-dom对象和jQuery对象相互转换:


  jQuery对象转成DOM对象---两种转换方式:[index]和.get(index)


  1、jQuery对象是一个数据对象,通过[index]的方法(就是通过下标索引寻找dom,进行操作)

  如:var $v = $("#v") ;    //jQuery对象

  var v = $v[0]; //DOM对象

  alert(v.checked) //检测这个checkbox是否被选中

  2、jQuery本身提供,通过.get(index)方法

  如:var $v = $("#v"); //jQuery对象

  var v = $v.get(0); //DOM对象

  alert(v.checked) //检测这个checkbox是否被选中


  注:其实两者都是同一个道理,即通过索引下标的方式,来寻找dom进行转换。

   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进行操作


总结


框架之类的东西都是封装好了的一个个函数,中间会经历一些操作,中间的取值过程也是不同,所以我们写代码的时候尽量使用同一种方式来写,不能混合使用,大概就是酱样子。



参考资料:

Js - Dom原生对象和jQuery对象的联系、区别、相互转换

DOM对象与jQuery对象的理解与分析


目录
相关文章
|
30天前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
16天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
17天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
27天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
1月前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
43 3
|
1月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
52 4
|
25天前
|
JavaScript 定位技术
jQuery鹰眼视图小地图定位预览插件minimap.js
这是一个jQuery小地图定位预览视图,默认左侧是页面主要内容,minimap.js的好处就是在它的右侧形成一个快速定位通道,产生一个缩小版的页面,即预览效果,可以点击并快速定位到页面的某个位置。简单实用,欢迎下载!
30 0
|
1月前
|
JavaScript 前端开发 API
深入了解jQuery:快速、高效的JavaScript库
【10月更文挑战第11天深入了解jQuery:快速、高效的JavaScript库
15 0
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
38 0
N..
|
6月前
|
JavaScript 前端开发 容器
jQuery中的DOM操作
jQuery中的DOM操作
N..
66 1