jQuery功能小总结

384 阅读1分钟

Hello,又到了前端知识小总结时间,今天我们来概括一下目前应用最广泛的一个Javascript函数库——jQuery。

这里先放上我自己手写 jQuery 库的链接,如果感兴趣的朋友可以点击查看

以下是jQuery的一些简单的用法总结:

1. jQuery 如何获取元素

jQuery的基本设计思想就是通过选择网页中的某个元素,然后对它进行某种操作。但是要注意的是,其返回的是一个对象。

使用jQuery获取页面中的元素可以有以下命令,其中选择表达式可以是CSS的选择器:

$(document);  //选择整个文档对象
$('#Id');    //选择id=Id的所有网页中的元素
$('div.red');  //选择class=red的所有div
$('input[name=dodo]');  //选择name属性为dodo的所有input元素

选择表达式也可以是jQuery的特有表达式:

$('a:first')  //选择网页中的第一个元素
$('tr:odd')  //选择表格的奇数行
$('#myForm: input') //选择表格中的input元素
$('div: visible') //选择可见的div元素
$('div:gt(3)')  //选择所有的div元素,除了前4个
$('div:animated')  //选择当前处于动画状态的div元素

当然,也可以在我们自己写的jQuery库中实现find的操作,基本的思路就是需要获取一个选择表达式,然后遍历每一个元素,找到合适的元素之后放进一个数组中,然后返回这个数组对象。这里举个例子:

find(selector){
    let array = [];
    for(let i =0;i<elements.length;i++){
        const elements2 = Array.from(elements[i].querySelectorAll(selector)) 
        array = array.concat(elements2)
    } 
    array.oldApi = this;
    return jQuery(array);
},

另外还可以在获取元素的时候加上一些过滤器,缩小选择结果:

$('div').has('red')   //选择包含red元素的div元素
$('div').not('.blue')  //选择class不是blue的div元素
$('div').filter('.yellow') //选择class等于yellow的div元素
$('div').eq(5); //选择第六个div元素

2. jQuery 链式操作

jQuery因为其会返回一个可以操作目标元素的对象而不是那个元素的值,所以不同的操作可以直接链接在一起,从而以像链条的形式展现出来:

$('div').find'h3'.eq(2).html('Hello');
        |
        |
        |
        V
$('div')  //寻找到div元素
 .find'h3'  //找到其中的h3元素
 .eq(2)    //选择h3元素中的第3个
 .html('Hello')  //把它的内容改成'Hello'

当然,我们也可以通过end()来返回上一层操作,具体如下:

oldApi: selectorOrArrayOrTemplate.oldApiend(){
    return this.oldApi;
},

3. jQuery 如何修改元素属性

我们可以利用 getter/setter 设计模式来同时实现取值和赋值,具体原理就是加一个 if 语句,当 selector 的值为空的时候就是读, selector 的值不为空的时候就是写:

$('h1').html();  //取出h1的值
$('h1').html('Hello')  //对h1进行重新赋值
.html() //取出或设置html内容
.text() //取出或设置text的内容
.attr() //取出或设置某个属性的值
.width()  //取出或设置某个元素的宽度
.height()  //取出或设置某个元素的高度
.val()  //取出表单元素的值

但如果其中包含多个元素,则赋值的时候会对所有元素赋值,但是取值的时候只取出第一个的值。

4. jQuery 如何创建元素

jQuery提供了几个api可以用来创建、删除或者复制元素:

.clone()  //复制元素
.remove()  //删除元素
.detach()  //删除元素
.empty()  //使元素的内容为空,但不删除元素
$('<p>Hello</p>');  //以下三种都是创建新元素的方法
$('<li class="new">new list</li>');
$('ul').append('<li>list item</li>');

5. jQuery 如何移动元素

jQuery在移动元素时可以移动目标元素本身,也可以移动其他元素使目标元素到达我们想要的位置:

$('div').insertAfter($('p'));  //把div元素移动到p元素后面
$('p').after($('div'));  //把p元素加到div元素前面

以上就是个人对jQuery的大多数设计思想的用法总结,大家如果想要更深入了解的话可以和我一样参考阮一峰写的《jQuery设计思想》或者直接阅读jQuery的文本。

©本总结教程版权归作者所有,转载需注明出处