jQuery学习之旅 Item5 $与jQuery对象
1、$符号的由来
$符号本质就是函数的名字。
jquery源码分析
通过分析我们知道,在jquery里边不只可以使用$符号,还可以使用jQuery标志
解决冲突问题
有的项目是中间过渡项目(prototype和jquery框架都有使用)
- prototype框架也使用$符号
- jquery里边也使用符号现在就分不清楚符号到底是prototype框架的 还是 jquery框架的
jquery本身有方法可以是的$符号的使用权被让出来
jQuery.extend({
noConflict: function( deep ) {
//使用一个空变量_$,把$符号给覆盖
window.$ = _$;
if ( deep ) {
//使用一个空变量_jQuery把jQuery使用权收回
window.jQuery = _jQuery;
}
return jQuery;
},
<script>
//通过jquery指定方法让出$符号的使用权
//被让出使用权的$符号,就不能出现在jquery的应用里边
//var jq = $.noConflict(); //收回$符号使用权
var jq = $.noConflict(true); //"$符号"和"jQuery"两个使用权都被收回
function f1(){
//alert($("div").html());
//alert(jQuery("div").html());
console.log(jq("div").html());
console.log(jQuery("div").html()); //不允许使用jQuery
}
</script>
<body>
<div>I am bread</div>
<input type="button" value="触发" onclick="f1()" />
</body>
2、jQuery对象与dom对象的区别和联系
- jquery对象——$(“li”)
- dom对象——document.getElementById(‘one’);
1. jquery对象创建过程中如何封装dom代码
结论:$(“#one”)[0] = document.getElementById(‘one’);
2. jquery对象转化为dom对象
a) jquery对象[下标] 例如 $(“#one”)[0]
//jquery对象调用dom对象的方法
$("#one")[0].setAttribute("class","pear");//说明jquery对象转化为了dom对象
在jquery对象里边获得指定的dom对象
$(“li”)多个节点
//jQuery 对象转换为Domd对象
$("li")[3].style.color ="red";
3. dom对象转换为jquery对象
a) var dv = document.getElementById(‘id’);
b) $(dv) 转化完毕
//$("#one").css('color','red');
//$("#one")就是对dom代码的封装(document.getElementById)
//利用dom对象调用jquery的方法(失败)
var dv = document.getElementById("one");
//jquery封装dom代码(dom对象)
//$(dv) dv是div元素节点 nodeType=1(dom对象转化为jquery对象)
$(dv).css("color","green");
3、jquery对象分析
jquery对象创建:jQuery.fn.init(); (从105行——219行)
但是 css() html() attr() addClass()等方法在 100多行的init()里边没有具体的操作方法
下面来分析代码结构:
- jQuery.fn 代码:104—338行
- jQuery.fn.init 代码:105—219行
- jQuery.fn.init.prototype = jQuery.fn;
jQuery.fn.init通过原型链继承jQuery.fn
jQuery.fn.init创建——>jQuery.fn.init 继承 ——> jQuery.fn (例如 length、jquery、size属性调用 ——> jQuery.fn 继承extend 冒充继承 (例如 addClass attr removeAttr)
jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() {}
- jquery对象创建完毕需要向上继承两层关系
- jquery之所以会调用许多相关方法,也是继承得来的方法
jquery在使用的时候可以使用两种对象
- $(“#one”) 是普通jQuery.fn.init创建出来的对象
- $.get(“url”) 不是jQuery.fn.init创建,而是jquery内部的jQuery对象
- 例如:
$.noConflict()$符号就是内部jQuery对象
该对象$,代码行数22—915行
$符号对象本身也有冒充继承,我们直接调用$符号的相关方法,首先去22-915行找,如果没有,就去extend继承方法里边找
系统里边有两套extend冒充继承:普通jquery对象的、$符号的
4、总结:
- 1、 $符号由来
- 2、 jquery对象与dom对象互相转化
- 3、 jquery对象分析
- a) jquery生成好的对象继承 jQuery.fn
- b) jQuery.fn 通过冒充继承 extend,又得到了许多属性和方法
版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226
jQuery学习之旅 Item5 $与jQuery对象的更多相关文章
- jQuery学习之旅 Item10 ajax快餐
1. 摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...
- jQuery学习之旅 Item8 DOM事件操作
1.jquery页面载入事件 1.传统加载事件 <body onload="函数名()"> 页面全部html和css代码加载完成之后再调用指定的onload函数 win ...
- jQuery 学习(1)——认识jQuery
1.下载 下载地址:http://jquery.com/download/ jquery-3.2.1.js——用于开发和学习(229K) jquery-3.2.1.min.js——用于项目和产品(31 ...
- jQuery学习总结(一)——jQuery基础与学习资源
前一段时间录了一套关于jQuery的视频分享给大家,可以在下载区下载到,本来想配合文字一起的,后面发现视频+帮助文档也是非常好的学习方法. 一.jQuery简介与第一个jQuery程序 1.1.jQu ...
- Jquery学习总结(1)——Jquery常用代码片段汇总
1. 禁止右键点击 ? 1 2 3 4 5 $(document).ready(function(){ $(document).bind("contextmenu",fun ...
- jQuery学习之旅 Item4 细说DOM操作
jQuery-–DOM操作(文档处理) Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准 ...
- jQuery学习之旅 Item1 选择器【一】
点击"名称"会跳转到此方法的jQuery官方说明文档. 1. 基础选择器 Basics 名称 说明 举例 #id 根据元素Id选择 $("divId") 选择I ...
- jQuery学习笔记(一)--jQuery对象与DOM对象相互转换
通过标准的JavaScript操作DOM与jQuyer操作DOM的对比,我们不难发现: 通过jQuery方法包装后的对象,是一个类数组对象.它与DOM对象完全不同,唯一相似的是它们都能操作DOM. 通 ...
- jQuery学习之旅 Item9 动画效果
1.元素的显示和隐藏 display:none; 隐藏 display:block; 显示 简单显示和隐藏方法 a) show() 显示 b) hide() 隐藏 c) toggle() 开关,显示则 ...
随机推荐
- 排队时延(Queuing delay)
网络时延的构成 Network delay including four parts: Processing delay - time routers take to process the pack ...
- hbase 集群管理脚本
#!/bin/bash # Show all running Java processes on region servers. Must run on master using HBase owne ...
- 【48】java抽象类和接口的定义和区别
首先看看他们的区别: 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力. ...
- Android BLE与终端通信(二)——Android Bluetooth基础科普以及搜索蓝牙设备显示列表
Android BLE与终端通信(二)--Android Bluetooth基础搜索蓝牙设备显示列表 摘要 第一篇算是个热身,这一片开始来写些硬菜了,这篇就是实际和蓝牙打交道了,所以要用到真机调试哟, ...
- 新闻网站开发-手机端-基于Wordpress
暂时写下来下面记录整个网站制作流程,由于是边学便用,代码质量和性能不能保证,仅仅为之前没做过的朋友提供个小小的参考: 下面先贴出网站,记得用手机或者[Opera Mobile Emulator]打开, ...
- HTML DOM - 导航
HTML DOM 节点列表长度 length 属性定义节点列表中节点的数量. 您可以使用 length 属性来循环节点列表: x=document.getElementsByTagName(" ...
- Web服务器Tomcat集群与负载均衡技术
我们曾经介绍过三种Tomcat集群方式的优缺点分析.本文将介绍Tomcat集群与负载均衡技术具体实施过程. 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的 ...
- Xamarin引用第三方包错误解决方法
http://www.cnblogs.com/ThenDog/p/7623720.html
- CAN数据格式-ASC
Vector工具录制的数据,一般有ASC和BLF两种格式,本文介绍ASC. 1. ASC定义 ASC(ASCII)即文本文件,数据已可视化的文本存储. 2.ASC查看 通常情况下,用记事本就可以打开. ...
- Vue 仿B站滑动导航
仿照B站制作的滑动导航功能,进行了部分优化,例如可定制默认选中元素,并将选中元素居中显示,可动态更改数据,可定制回调函数取的下标和选中元素内容,可根据需求制作N级联动 已开发成插件,使用方法与源码请前 ...