jQuery的基本设计思想和主要用法,就是“选择某个网页元素,然后对其进行某种操作”。
jQuery选择器
1 | $('#id');$('.class');$('span') |
1 | <ul> |
1 | <div id='xxx'></div> |
jQuery常用API
.get()
:通过jQuery
对象获取一个对应的DOM元素,返回的是一个DOM对象
.eq()
:返回为指定的索引的哪一个元素,返回的是一个jQuery
对象
addClass()
;removeClass()
.toggleClass()
//如果在元素中指定类名称不存在,则添加指定类名称;如果元素已经拥有指定
类名称,则从元素中删除指定类名称。
1 | <div></div><div></div> |
自制一个jQuery
jQuery
实质上是一个构造函数,该构造函数接受一个参数,jQuery通过这个参数利用原生API找到节点,之后返回一个方法对象,该方法对象上的方法对节点进行操作(方法使用了闭包)。
通过自制拥有几个简易功能的jQuery
,来加深理解jQuery
。
要求:
1
2
3
4
5
6
7 >window.jQuery = ???
>window.$ = jQuery
>
>var $div = $('div')
>$div.addClass('red') // 可将所有 div 的 class 添加一个 red
>$div.setText('hi') // 可将所有 div 的 textContent 变为 hi
>
ⅰ. 获取元素节点,并返回一个纯净的伪数组。
1 | window.jQuery = function (nodeOrSelector) { |
ⅱ. 添加addClass()
方法
1 | nodes.addClass = function (className) { |
ⅲ. 添加setText()
方法:
1 | nodes.Text = function (text) { |
组合一起就是:
1 | window.jQuery = function (nodeOrSelector) { |
这里是实现的思路:
第一版:
1 | function addClass(node1, className){ |
第二版:
1 | window.jQuery = function(node1){ |
第三版: 支持输入字符串
1 | window.jQuery = function(node1){ |
第四版: 支持操作多个元素
1 | window.jQuery = function(node1){ |
第五版: 通过jQuery返回的是纯净的伪数组
1 | window.jQuery = function(node1){ |