jQuery对象与DOM对象相互转换详解
本文详解jQuery对象与DOM对象的区别及相互转换方法。jQuery对象无法直接使用DOM方法,反之亦然。通过$(DOM对象)可将DOM转为jQuery对象;通过[index]或.get(index)可将jQuery转为DOM对象。掌握转换技巧可避免常见错误,如直接对this调用jQuery方法。
jQuery对象与DOM对象的区别
jQuery对象是由jQuery封装DOM对象后生成的特有对象。它拥有jQuery库提供的各种方法,但不能直接调用原生DOM的方法。例如,执行$("#img").attr("src","test.jpg");时,$("#img")即为一个jQuery对象。
DOM对象是指JavaScript原生操作的对象。这类对象可以使用JavaScript内置的方法,却无法使用jQuery提供的方法。例如,document.getElementById("img").src = "test.jpg";中的document.getElementById("img")就是一个DOM对象。
语句$("#img").attr("src","test.jpg");与document.getElementById("img").src = "test.jpg";功能等价且正确。然而,尝试使用$("#img").src = "test.jpg";或document.getElementById("img").attr("src","test.jpg");则会报错,因为前者混淆了jQuery方法与DOM属性,后者混淆了DOM对象与jQuery方法。
以this为例,在jQuery代码中常有人尝试直接写this.attr("src","test.jpg");,这会导致错误。原因是this指向的是当前的DOM对象,而.attr()是jQuery方法,两者不匹配。解决方法是将this转换为jQuery对象,即写成$(this).attr("src","test.jpg");。
DOM对象转jQuery对象
接下来介绍具体的转换方式,首先是从DOM对象转换为jQuery对象。
对于已经存在的DOM对象,只需使用$()函数将其包裹,即可得到对应的jQuery对象,语法为$(DOM对象)。注意,var用于定义变量。
具体示例如下:
var v = document.getElementById("v"); //DOM对象
var $v = $(v); //jQuery 对象
完成转换后,该对象即可自由使用jQuery提供的各类方法。
jQuery对象转DOM对象
其次介绍从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)方法,用于获取对应的DOM对象。
具体示例如下:
var $v = $("#v"); //jQuery 对象
var v = $v.get(0); //DOM对象 ( $v.get()[0] 也可以 )
alert(v.checked); //检测这个 checkbox 是否被选中
通过上述方法,可以实现jQuery对象与DOM对象的自由转换。需要再次强调:只有DOM对象才能调用DOM中的方法,而jQuery对象不能直接调用DOM方法。
JavaScript零基础入门:从环境搭建到运行第一段代码
2026-11-05 15:29:58
HTML链接中javascript:void(0)的作用及现代替代方案
2026-11-05 10:07:47
在线调试 JS 时怎么引入 jQuery 或 Vue 等第三方库
2026-11-05 08:53:56
原生JavaScript实现简易颜色选择器原理与代码
2026-11-03 23:22:19
JS原生表单序列化:FormData与URLSearchParams用法详解
2026-11-03 23:13:21
