jQuery相关功能简述

204 阅读3分钟

一、jQuery 如何获取元素

jQuery的基本设计思想,是“先获取某个网页的元素,然后对其进行某种操作”。

使用jQuery获取元素,一般是将选择器放进构造函数jQuery()(简写成$()),即jQuery(选择器)获取对应的元素。

如常见的一些选择器

$(document) // 选择整个文档对象

$('#myID').find('.red') // 选择所有ID为myID里的.red网页元素

$.('div').('.myClass') // 选择所有的class值为myClass的div元素

$('.red').each(fn) // 遍历所有.red元素并对每个元素执行函数fn

二、jQuery 如何创建元素

jQuery创建新元素,只要把新元素直接传入jQuery()即可:

$('<p>Hello</p>')

$('<div class="new1">new1 div</div>')

$('ul').append('<li>list item</li>')

三、jQuery 如何移动元素

它提供了两组方法移动元素。一组是直接移动参考元素,另一组是移动其他元素,使得参考元素达到期望的位置。

假设我们获取了一个div元素,需要把它移动到p元素后面。

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

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

两种方法看似效果相同,但实际上他们有个重大差别。即返回的元素不一样。第一种方法返回div元素,第二种返回p元素。需要根据需求去选择使用哪一种方法。

和上述两组一对的移动方法相同的,还有其他四对移动方法:

.inserAfter()和.after() // 在参考元素的外部,从后面插入元素

.inserBefore()和.before() // 在参考元素的外部,从前面插入元素

.appendTo()和.append() // 在参考元素的内部,从后面插入元素

.prependTo()和.prepend() // 在参考元素的内部,从前面插入元素

四、jQuery 如何修改元素

1、最常见的修改网页元素需求是,对它们取值和赋值。jQuery的设计模式就是使用同一个函数,来完成取值(getter)和赋值(setter)。到底是取值还是赋值,由参数决定

$('h1').html() // html()没有参数,表示获取h1的值

$('h1').html('Hello') // html()有参数Hello,表示对h1进行赋值

常见的取值和赋值函数:

.html() // 获取或设置html内容

.text() // 获取或设置text内容

.attr() // 获取或设置某个属性的值

.width() // 获取或设置某个元素的宽度

2、还有几个重要的修改元素的方法。(复制,删除和清空)

.clone() // 复制元素

.remove() // 删除元素。此法不保留被删除元素

.detach() // 删除元素。此法保留被删除元素,可重新插入文档使用

.empty() // 清空元素内容。但不删除该元素

五、jQuery 的链式操作

即在最终获取元素以后,可以对他进行一系列操作,并且所有的操作可以连接在一起,以链条的形式写出来。比如:

$('div').find('.red').eq(0).html('Hello')

可拆分写成这样:

$('div') // 获取所有div元素
    
    .find('.red') // 找到class值为red的div元素
    
    .eq(0) // 获取第一个class值为red的div元素 
    
    .html('Hello') // 将它的内容改为Hello

它的原理在于每一步jQuery函数操作,返回的都是一个可操作的jQuery对象(简称为Api),所以不同的操作可以连在一起。

另外,jQuery还提供了.end()方法,可以使结果集后退一步

$('div')

    .find('.red')
    
    .eq(0)
    
    .html('Hello')
    
    .end() // 退回到获取所有class值为red的div元素那一步
    
    .eq(1) // 选中上步获取的div元素中的第二个
    
    .html('World') // 将它的内容改为World

参考资料

阮一峰 《jQuery设计思想》

jQuery API 中文文档

©转载声明