jQuery对象细节

1. jQuery核心函数

核心函数的七种写法:

  • jQuery(selector,context) : 给定一个css选择器和选择上下文,选中对应对象封装成为jQuery对象
  • jQuery(html,ownerDocument) 、jQuery(html,props) : 用所提供代码生成HTML元素
  • jQuery(element or elementsArray) : 传入元素,则封装,若传入元素数组则将元素数组内所有元素封装到同一个jQuery对象中
  • jQuery(Object) : 如果传入的是一个object对象,则把该对象封装到jQuery对象中并返回。
  • jQuery(callback) : 当传进去的参数是函数的时候,则在document对象上绑定一个ready事件监听函数,当DOM结构加载完成的时候执行
  • jQuery(jQuery object) : 当传进去的参数是一个jQuery对象的时候,则创建该jQuery对象的一个副本并返回。副本与传入的jQuery对象引用8完全相同的元素
  • jQuery() : 如果不传入任何的参数,则返回一个空的jQuery对象,属性length为0
    不管核心函数有多少种写法都可以看到几乎都提到了一个字眼就是jQuery对象,那么我们就应该深入了解jQuery对象以及他与Dom对象的区别

2. 深入jQuery对象

<!DOCTYPE html>
<html lang="en">
<head><meta name="author" content="Ronin"><meta name="time" content="2020/6/16"><meta charset="UTF-8"><title>jQuery对象</title><script src = "../Day01/JS/jquery.js"></script>
</head>
<body>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div><script>//入口函数$(function(){//选中所有div$div = $('div');console.log($div);
</script>
</body>
</html>

现在我给jQuery传入了,css选择器.box,并且没有传递选择上下文所以默认从document上寻找所有的class为box的元素 封装成jQuery对象,最后我打印了一下 看效果

可以看到jQuery的对象中有0~4的索引 ,有length属性,那么我们就可以称其为伪数组 ,那么这时候我有疑问了,既然它封装了4个Dom元素,那我们知道jQuery对象也有一套操作Dom的方法,我就去找一下改变样式的方式测试一下。

 <!DOCTYPE html>
<html lang="en">
<head><meta name="author" content="Ronin"><meta name="time" content="2020/6/16"><meta charset="UTF-8"><title>jQuery对象</title><script src = "../Day01/JS/jquery.js"></script>
</head>
<body>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div><script>//入口函数$(function(){//选中所有div$div = $('div');$div.css('height','200px');$div.css('width','200px');$div.css('float','left');$div.css('backgroundColor','lightyellow');$div.css('marginLeft','20px');console.log($div);
</script>
</body>
</html>

看效果图:

在上面我比较蛋疼的用jQuery写了几段CSS的代码,但是我们看到了效果,也从中得到了一些信息,jQuery对象是一个伪数组,伪数组中的Dom元素全部都用jQuery的方式改变了,那我如果想要只改变其中的第一个或者第二个呢?

$($div[0]).css('backgroundColor','black');

这里把jQuery对象的0号索引的Dom选中,在经过jQuery函数封装之后进行操作,当然直接用Dom方式改变样式也没有问题
接下来在jQuery对象中还剩下一个prevObejct这个属性,这个属性的字面意思是前一个对象,而我确有些费解了,他指的是那方面的前一个呢,可以看到源码中的

正在我百思不得其解之时我从大神博客中找到了这样的一片描述

jQuery内部维护着一个jQuery对象栈。每个遍历方法都会找到一组新元素(一个jQuery对象),然后jQuery会把这组元素推入到栈中。

而每个jQuery对象都有三个属性:context、selector和prevObject,其中的prevObject属性就指向这个对象栈中的前一个对象,而通过这个属性可以回溯到最初的DOM元素集。

原文链接 : https://www.cnblogs.com/aaronjs/p/3387278.html

我也就暂时理解为每一次jQuery选中对象之后都会push进栈,然后每一个对象都有一个属性指向上一个被选中的jQuery对象吧
其实这里我看大神门都是利用溯源操作来进行展示,这里我这个菜鸟就利用属性调用改变下样式吧

$div.css('height','200px');$div.css('width','200px');$div.css('float','left');$div.css('backgroundColor','lightyellow');$div.css('marginLeft','20px');let $first_div = $("#box","div");// $first_div的prevObejct属性  = $div$first_div.prevObject.css('background','black');console.log($div);console.log($first_div);

【jQuery】jQuery对象与prevObject相关推荐

  1. 50 jQuery拷贝对象与多库共存

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.jQuery拷贝对象 如果想要把某个对象拷贝(合并)给另外一个对象使用,此时使用$.e ...

  2. jquery jQuery的入口函数 $函数 dom对象和jquery对象

    文章目录 jquery jQuery的入口函数 $函数 dom对象和jquery对象 jQuery的入口函数 视频 代码 $函数 视频 代码 dom对象和jquery对象 视频 代码 jquery j ...

  3. jquery 事件对象属性小结

    jquery 事件对象属性小结 使用事件自然少不了事件对象. 因为不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异, 导致我们很难跨浏览器使用事件对象. jQuery中统一了事件对象, 当绑 ...

  4. [jQuery] jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this

    [jQuery] jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this init()方法中返回的this指向init的实例对象,而init.prototype等于jQue ...

  5. jQuery学习(十二)—jQuery中对象的查找方法总结

    jQuery学习(十二)-jQuery中对象的查找方法总结 一.find方法 作用:在元素1中查找元素2,类似于选择器中的后代选择器 格式:元素1.find(元素2),元素2为CSS选择器或者jQue ...

  6. JQuery修改对象的属性值

    JQuery修改对象的属性值 用到的便是JQuery提供的attr方法,获取属性值的基本结构为:$(obj).attr("属性名"):修改属性值的结构为:$(obj).attr(& ...

  7. jQuery遍历对象/数组/集合

    jQuery遍历对象/数组/集合 转载自: 网络1.jquery 遍历对象<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitiona ...

  8. JS/jQuery 遍历对象属性

    Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25};for ...

  9. jquery 遍历java对象,js/jquery遍历对象和数组的方法分析【forEach,map与each方法】...

    本文实例讲述了js/jquery遍历对象和数组的方法.分享给大家供大家参考,具体如下: JS forEach方法 arr[].forEach(function(value,index,array){ ...

  10. jQuery遍历对象、数组、集合

    1.jquery 遍历对象 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTM ...

最新文章

  1. selenium学习笔记(一)
  2. 3.2 亿人都在刷抖音,而优秀的人在看这些公众号
  3. 为什么晚上咳嗽很厉害
  4. 打造 .NET Core 链接转发服务
  5. python 爬取svg数据_抓取SVG图表
  6. java5的递归算法_java递归算法 java面试题(5)
  7. 利用vector进行图的存储
  8. java va start_va_start和va_end使用详解
  9. 如何对shell脚本进行加密且不影响脚本运行
  10. java 学习笔记之AtomicInteger类的使用
  11. dropify插件的字符串
  12. android 刷路由器,荣耀立方WS860s路由器完整刷机包怎么使用?荣耀立方刷机图文教程...
  13. Adobe Flash CS4 从入门到精通
  14. CWMP (TR-069)技术介绍
  15. vmware linux虚拟机网络配置
  16. SNK 推出NEOGEO mini 投币配件,还能当作存钱罐?
  17. Rxjava源码初理解(一)
  18. Qt:一个简洁漂亮的高仿网易云播放器
  19. Hadoop分布式文件系统 (HDFS)
  20. SpringSecurityOauth2授权模式与使用RSA非对称加密方式生成公钥私钥

热门文章

  1. python drop用法,python数据处理--pandas的drop函数
  2. c语言各种古怪的写法
  3. 打通云主机实现局域网
  4. 使用VMware虚拟机搭建Panabit透明网桥环境
  5. android点歌系统代码
  6. SVM原理:超平面方程
  7. 【UVA12235 Help Bubu】
  8. tp5使用RabbitMQ的使用记录
  9. 编程过程中常见几何数学公式汇总
  10. 探索肠道细菌的营养偏好