前端学习笔记JavaScript Web前端之路

锋利的jQuery——读书笔记一

2017-01-07  本文已影响115人  小夫特

之前照着菜鸟教程把jQuery的基本知识学了一遍了,用的时候还是 Excuse me? 还是那句话说的好,书到用时方恨少。之前一直在网上学习知识,每次不会用时再去百度,或者查api,经常遇到一类问题,比如,上次看的比较好的那篇文章呢?而且各种问题百度了N久还是没有找到解决方法就比较头疼了。所以,买纸质书,也是我个人比较喜欢的学习方式。看书,划重点,练习,遇到不会的就翻目录去找~nice

锋利的 jQuery

01 认识jQuery


知己知彼,百战百胜~

jQuery 是一个 JavaScript 库

第一个jQuery代码

//引入jQuery
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        alert('hello word');
    });  
         //简化
    $(function(){
        alert('hello word');
    });
</script>

02 jQuery对象 和 DOM对象


这一块个人觉得是比较重要的一点,之前没搞懂的时候,jQuery对象和DOM对象的方法各种乱用,还自以为对的~然后就出现了以下错误

$('#foo').innerHtml    
 //jQyery选择器和DOM方法 也是服了我自己个```
#####DOM(Document Object Model)文档对象模型

<!DOCTYPE html>
<html>
<head>
<title>文档标题</title>
</head>
<body>
<a href="">我的链接</a>
<h1>我的标题</h1>
</body>
</html>

![HTML DOM树](http://upload-images.jianshu.io/upload_images/1958857-33facb58092f7bd7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
无论是这里的<body>,`<a>`元素 或者 `<h1>`都是DOM元素节点,都可以通过 **Javascript** 里的 **getElementsByTagName** 或者 **getElementsById** 方法去获取元素的节点,换句话说,通过 **getElements** 方法获得的都是DOM元素节点
####jQuery对象
jQuery对象就是通过jQuery包装DOM对象后产生的对象,jQuery对象可以使用jQuery里的方法。
**eg:**  获取id为foo元素内的html代码

$('#foo').html(); //jquery方法

//等价于

document.getElementsById('foo').innerHtml; //DOM方法

DOM方法和jQuery方法不能互用,也就是我之前翻的错误
####DOM对象和jQuery对象互相转换
- 首先,我们需要有一定的变量风格,以便代码的易理解
- 如果获取的对象是**jQuery**对象,那么在变量前面加上$
-  例如`var $foo = $('#foo');`

#####**jQuery** 对象转换为 **DOM对象**
  - `var foo = $foo[0]   //[index]方法`
  - `var foo = $foo.get[0]   //get[index]方法`

#####**DOM**对象转换为**jQuery**对象
  - `var foo = document.getElementsById('foo');   //DOM对象
  var $foo = $(foo);      //jQuery对象
      `
  - 转换后就可以任意使用jQuery方法
  - **$()** 函数就是 jQuery对象的制造工厂

## 03 解决jQuery库和其他库的冲突
-----------------------------------------------
这里就有一个jQuery的优势:不污染顶级变量
####jQuery库在其他库之后导入
在其他库和**jQuery**库都被加载完毕后,可以在任何时候调用** jQuery.noCOnflict();** 函数来将变量**$**的控制权移交给其他Javascript库
  - 移交后jQuery 方法使用` jQuery.('p').click(function(){})`
  - 其他Javascript库就可以使用了
  - 或者定义其他的快捷方式  `var $j = jQuery.noCOnflict();`
  - 或者在移交后在加载函数里把**$**参数带入,内部便可以使用,
`jQuery(function($){    //内部可以使用$  })`;

#### 在其他库之前导入**jQuery**库
 - 无须使用**jQuery.noCOnflict();**函数,可以直接使用**jQuery**来做jQuery操作

>这仅仅本人在看书过程中,觉得很重要或者自己之前一直有疑问的地方,仅以此文记录读书过程。如有错误还请大家指出,下一章,选择器
上一篇 下一篇

猜你喜欢

热点阅读