jquery 对象 vs dom对象
用#id作为选择符取得的是jQuery对象与document.getElementById(“id”)得到的DOM对象,这两者并不等价。

(一)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。
例:

var $v =$(“#v”) ; //jQuery对象

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

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

var $email = $(“#email”); // refers to the jQuery object representation of the dom object
var email_field = $(“#email”).get(0); // refers to the dom object itself

仅仅是变量名的一种规范

注:jquery对象命名时,通常以$开头,比如 var $ps = $(‘p’),这样的好处是,一眼就知道$ps是一个jquery对象,程序可读性大大提高。
————————————
jquery选择器返回多个还是一个

一、当使用id选择器时,会返回对应的jquery对象

let files = $(“#uploadFile_batchImport”);
let file = files[0].files[0];
以上代码中,files是jquery对象,files[0]是dom元素,file则是dom元素的files属性的第一个文件。
二、当使用类选择器时,返回的是多个dom对象组成的jquery对象
let obj = $(“.intro”);

let aDom = obj[0];

此时,obj是多个dom元素组成的jquery对象,aDom是个dom对象。

[attribute] $(“[href]”) 具有href属性的所有元素

[attribute=value] $(“[href=’default.htm’]”) href属性值等于“default.htm”的所有元素

$(“p”) 选取

元素。

$(“p.intro”) 选取所有 class=”intro” 的

元素。

$(“p#demo”) 选取所有 id=”demo” 的

元素。

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

$(“[href]”) 选取所有带有 href 属性的元素。

$(“[href=’#’]”) 选取所有带有 href 值等于 “#” 的元素。

$(“[href!=’#’]”) 选取所有带有 href 值不等于 “#” 的元素。

$(“[href$=’.jpg’]”) 选取所有 href 值以 “.jpg” 结尾的元素。

按tag查找 按class查找 按属性查找 组合查找 多项选择器

层级选择器(Descendant Selector)
如果两个DOM元素具有层级关系,就可以用$(‘ancestor descendant’)来选择,层级之间用空格隔开。例如:

子选择器(Child Selector)

.find()
.parent()方法

parent()是唯一的,为什么可以加selector呢?
本方法也可以接受一个字符串选择器,用于筛选返回的元素。

本方法用于选择给定jQuery对象中包含的DOM元素或者DOM元素集的祖先节点,并将这些节点包装成jQuery对象返回,返回的节点集是以从里到外的顺序排序的。

parents()同理

这里我们看到有一个prevObject,这个this.prevObject到底是用来干什么的呢?没错,jQuery通过这个属性维护了一个jQuery对象栈,只要我们使用选择相关的方法(如find(),eq()等)获取新的jQuery对象,jQuery就会把之前的对象存储在prevObject中。