jQuery,基础核心

一.代码风格

在jQuery程序中,不管是页面元素的选择、内置的功能函数,都是美元符号“$”来起 始的。而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元 素选择或执行功能函数的时候可以这么写:

$(function () {}); //执行一个匿名函数
$(‘#box’); //进行执行的ID元素选择
$(‘#box’).css(‘color’, ‘red’); //执行功能函数

由于$本身就是jQuery对象的缩写形式,那么也就是说上面的三段代码也可以写成如下 形式:

jQuery(function () {});
jQuery(‘#box’);
jQuery(‘#box’).css(‘color’, ‘red’);

在执行功能函数的时候,我们发现.css()这个功能函数并不是直接被“$”或jQuery对象调 用执行的,而是先获取元素后,返回某个对象再调用.css()这个功能函数。那么也就是说, 这个返回的对象其实也就是jQuery对象。

$().css(‘color’, ’red’); //理论上合法,但实际上缺少元素而报错

值得一提的是,执行了.css()这个功能函数后,最终返回的还是jQuery对象,那么也就 是说,jQuery的代码模式是采用的连缀方式,可以不停的连续调用功能函数。

$('#box').css('color', 'red').css('font-size', '50px'); //连缀

jQuery中代码注释和JavaScript是保持一致的,有两种最常用的注释:单行使用“//...”, 多行使用“/* ... */”。

//$('#box').css('color', 'red');

二.加载模式

我们在之前的代码一直在使用$(function () {});这段代码进行首尾包裹,那么为什么必须 要包裹这段代码呢?原因是我们jQuery库文件是在body元素之前加载的,我们必须等待所 有的DOM元素加载后,延迟支持DOM操作,否则就无法获取到。

在延迟等待加载,JavaScript提供了一个事件为load,方法如下:

window.onload = function () {}; //JavaScript等待加载
$(document).ready(function () {}); //jQuery等待加载

ready()方法,等待页面加载完毕后执行函数

参数:是要执行的函数

$(document).ready(function () {alert('页面加载后打印');
}); //jQuery等待加载

 在实际应用中,我们都很少直接去使用window.onload,因为他需要等待图片之类的大 型元素加载完毕后才能执行JS代码。所以,最头疼的就是网速较慢的情况下,页面已经全 面展开,图片还在缓慢加载,这时页面上任何的JS交互功能全部处在假死状态。并且只能 执行单次在多次开发和团队开发中会带来困难。

三.对象互换

jQuery 对象虽然是 jQuery 库独有的对象,但它也是通过 JavaScript 进行封装而来的。我 们可以直接输出来得到它的信息。

alert($); //jQuery 对象方法内部
alert($()); //jQuery 对象返回的对象,还是 jQuery
alert($('#box')); //包裹 ID 元素返回对象,还是 jQuery

从上面三组代码我们发现:只要使用了包裹后,最终返回的都是 jQuery 对象。这样的 好处显而易见,就是可以连缀处理。但有时,我们也需要返回原生的 DOM 对象,比如:

alert(document.getElementById('box')); //[object HTMLDivElement]

jQuery 想要达到获取原生的 DOM 对象,可以这么处理:

get()方法,获取到元素对象的原生态对象

参数是元素对象的索引

alert($('#box').get(0)); //ID 元素的第一个原生 DOM

从上面 get(0),这里的索引看出,jQuery 是可以进行批量处理 DOM 的,这样可以在很 多需要循环遍历的处理上更加得心应手。

四.多个库之间的冲突

当一个项目中引入多个第三方库的时候,由于没有命名空间的约束(命名空间就好比同 一个目录下的文件夹一样,名字相同就会产生冲突),库与库之间发生冲突在所难免。 那么,既然有冲突的问题,为什么要使用多个库呢?原因是 jQuery 只不过是 DOM 操 作为主的库,方便我们日常 Web 开发。但有时,我们的项目有更多特殊的功能需要引入其 他的库,比如用户界面 UI 方面的库,游戏引擎方面的库等等一系列。 而很多库,比如 prototype、还有我们 JavaScript 课程开发的 Base 库,都使用“$”作为 基准起始符,如果想和 jQuery 共容有两种方法:

1.将 jQuery 库在 Base 库之前引入,那么“$”的所有权就归 Base 库所有,而 jQuery 可 以直接用 jQuery 对象调用,或者创建一个“$$”符给 jQuery 使用。

var $$ = jQuery; //创建一个$$的 jQuery 对象
$(function () { //这是 Base 的$alert($('#box').ge(0)); //这是 Base 的$alert($$('#box').width()); //这是 jQuery 的$$
});

2.如果将 jQuery 库在 Base 库之后引入,那么“$”的所有权就归 jQuery 库所有,而 Base 库将会冲突而失去作用。这里,jQuery 提供了一个方法:

jQuery.noConflict(); //将$符所有权剔除
var $$ = jQuery;
$(function () {alert($('#box').ge(0));alert($$('#box').width());
});

转载于:https://www.cnblogs.com/adc8868/p/6498845.html

第一百六十三节,jQuery,基础核心相关推荐

  1. 不朽凡人 第一百六十二章 哪里来的外门弟子

    雷炼室的雷弧再次落下,莫无忌只能引导雷弧去轰击第一百零一条脉络.和第一百条脉络一摸一样,引导雷弧冲击堵塞的脉络,只能让他徒增痛楚而已,不能让堵塞的脉络有半分松动. 莫无忌索性将所有的开脉药液全部喝下, ...

  2. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  3. 第一卷 第一百三十六章 好白菜

    第一卷 第一百三十六章 好白菜 其实我最恨两种人,一种是始乱终弃的小白脸,一种就是生孩子不养活的臭娘们儿.**  提供本书txt电子书下载 **既然你能生就要能养啊,虽然我不知道井里的那个死孩子的母亲 ...

  4. 第一章第十三节:循环语句:for循环

    Python基础入门(全套保姆级教程) 第一章 第十三节:循环语句:for循环 字符串是可迭代的 for循环: for 变量 in 可迭代的东西:代码 把可迭代的东西中的每一项内容拿出来. 挨个的赋值 ...

  5. 第三百六十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本概念...

    第三百六十节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)的基本概念 elasticsearch的基本概念 1.集群:一个或者多个节点组织在一起 2.节点 ...

  6. JavaEE学习日志(六十二): jQuery遍历,jQuery事件,省市联动,左右互选

    JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) JavaEE学习日志(六十二) jQuery jQuery遍历 传统遍历 jQuery对象遍历 jQuery全局函 ...

  7. 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件

    jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...

  8. 第一百七十四节,jQuery,Ajax进阶

    jQuery,Ajax进阶 学习要点: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 在 Ajax 课程中,我们了解了最基本的异步处理方式.本章,我 ...

  9. 第一百三十六期:详细讲解 Redis 的两种安装部署方式

    Redis 是一款比较常用的 NoSQL 数据库,我们通常使用 Redis 来做缓存,这是一篇关于 Redis 安装的文章,所以不会涉及到 Redis 的高级特性和使用场景,Redis 能够兼容绝大部 ...

  10. 第一百二十六期:代码以外的生存之道,献给每位入了坑的码农

    本篇内容主要是对这本书的一个总结概括,也希望能用作抛砖引玉,让读者在看完之后,对这本书有所兴趣,或者希望能让读者对代码以外的需要做的事情更加积极明朗一点. 作者:码农三哥 前言 最近刚刚读完了一本书, ...

最新文章

  1. arcgis server for flex中文乱码问题(转)
  2. 开发Java系统程序员要注意的基本知识
  3. JSONP跨域请求数据报错 “Unexpected token :”的解决办法
  4. opencv 梯度幅值_OpenCV边缘检测的详细参数调节
  5. [发布] 多选控件和时钟控件
  6. Scala range reverse debug
  7. 博客系统如何随机插入大量文章数据
  8. 带你了解VXLAN网络中报文的转发机制
  9. 用户登录python_python用户登录系统
  10. Java完全自学手册pdf,flutter中文网
  11. 5000+ 字解读 | 产品经理:如何做好元器件选型?
  12. 支付宝小程序:报错 insufficient-isv-permissions 错误原因: ISV权限不足解决方案
  13. qcap 教程_高通平台抓取ramdump及使用qcap解析,ramdumpqcap
  14. HTML5制作对联网页,经典的JS对联广告代码
  15. 《墨菲定律》读书笔记之第一章——成功学的秘密
  16. java实现-强智教务系统API文档-全部java封装
  17. 【博客之星】坚持,是一种信仰
  18. 微信聊天防封 亲测 百分之95有效 【附源码】
  19. 【数据结构】用Java实现动态数组
  20. C语言化学计算器(二)

热门文章

  1. 构建路径_深度学习的幸福课堂构建从评价细则中找“路径”——基于深度学习的幸福课堂构建实践研究...
  2. 笛卡尔坐标系_笛卡儿坐标系
  3. java鼠标中键_java-selenium鼠标键盘操作Actions类和Robot
  4. JVM学习02-虚拟机的基本结构
  5. 脉冲控制仪C语言程序,可编程脉冲控制仪
  6. php mac windows,苹果电脑是windows系统吗
  7. 【渝粤教育】广东开放大学 商务交际听说 形成性考核 (31)
  8. 编写一个Linux 64位应用的注册机
  9. CSS选择器详解(转)
  10. Jquery中拿到相同的对应的所有的标签