前端必备:jQuery 1.7.1API手册

本文基于jQuery1.7.1版本,是对官方API的整理和总结,完整的官方API见http://api.jquery.com/browser/

下陆网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

0、总述

jQuery框架提供了很多方法,但大致上可以分为3大类:获取jQuery对象的方法、在jQuery对象间跳转的方法,以及获取jQuery对象后调用的方法

其中第一步是怎样获取jQuery对象。大致来说,是通过最核心的$()方法,将页面上的元素(或者在页面上不存在的html片段)包装成jQuery对象。

$()方法里面支持的语法又包括3大类,分别是表达式(包括类表达式.,id表达式#,元素表达式等)、符号(包括后代符号space,next符号+等)、过滤器(包括:过滤器和[]过滤器)。

通过以上3种的组合,“查询”得到想要操作的元素或者元素集合,作为$()的参数,得到jQuery对象(或者jQuery对象的集合)

第二步是在jQuery对象间的跳转。也就是说,已经得到了一个jQuery对象,但是并不是想要的,那么可以通过一系列的跳转方法,比如parent()、next()、children()、find()等,或者过滤筛选的方法,比如eq()、filter()、not()等,来得到最终想要操作的jQuery对象。

用跳转和过滤方式得到的jQuery结果,往往通过比较复杂的表达式组合,可以达到同样的目的。

比如说$("div").eq(3),也可以用$("div:eq(3)")达到同样的目的。

又比如说$("div").find("span"),可以用$("div span")取到同样的元素。

方法是很灵活的,要根据具体的情况来选择。一般来说,HTML页面写得越规范,使用jQuery就越简单

还有一种情况,在得到了jQuery()对象之后,想要判断其是否满足条件,那么可以调用is()、hasClass()等方法,返回一个boolean值,进行后续的判断。这类方法也可以归到这类。

第三步是在获取准确的jQuery对象之后,调用其上的各种方法,来进行操作。这一步反而是比较简单的了。

后面就是对jQuery框架各种方法的简要介绍,更详细的内容,还是以官方API为准

1、$(...)

$() 一切的核心,可以跟4种参数

$(expression),比如$("#id")、$(".class")等,返回jQuery对象,或者jQuery对象的集合

$(html),比如$("hello world"),返回jQuery对象,或者jQuery对象的集合

$(element),比如$(document.body),返回jQuery对象,或者jQuery对象的集合

$(*),所有元素

2、jQuery Object Accessors

jQuery.index(element),返回该jQuery对象在集合中的索引

jQuery.each(function),遍历jQuery对象集合,在每个对象上执行function函数,function callback(index, domElement){this};

jQuery.size(),返回jQuery对象集合的大小

jQuery.length,相当于size()方法

jQuery.get(),获取原生DomElement对象的Array

jQuery.get(index),获取原生DomElement对象

jQuery.eq(position),获取jQuery对象集合中的一个jQuery对象

3、Data相关方法

jQuery.data(name)

jQuery.data(name, value)

jQuery.removeData(name)

4、选择符

multiple(selector1, selector2),可以选择多个元素或者表达式,包装成jQuery对象的集合

例子:$("div,span")

id(id)

例子:$("#id")

class(class)

例子:$(".class")

element(element)

例子:$("div")

all

例子:$("*")

descendant

例子:$("table tr td")

child(parent, child)

例子:$("#id > span"),和上一个descendant的区别在于,descendant只要是后代就会被选中,而child必须是直接子节点,不包括孙子节点

next(prev, next)

例子:$("label + input"),选中的是label标签的下一个input标签,返回jQuery对象的集合

siblings(prev, siblings)

例子:$("#prev ~ div"),选中的是#prev之后的所有div标签,返回jQuery对象的集合,有点像next,但是范围更大

Basic Filters

$(":header"),选中所有header,包括

$("tr:odd"),选中所有奇数行

$("tr:even"),选中所有偶数行

$(":animated"),选中所有当前有特效的元素,$("div:animated"),选中当前所有有特效的

$("tr:first"),选中第一行

$("tr:last"),选中最后一行

$("input:not(:checked)"),选中所有没有“checked”的input元素

$("td:gt(4)"),选中所有index是4之后的td

$("td:lt(4)"),选中所有index是4之前的td

$("td:eq(4)"),选中index是4的td,可以用$("td").eq(4)来实现同样的效果

Content Filters

$("div:contains('John')"),选中所有包含"John"字符串的div

$("td:empty"),选中所有内容为空的td

$("div:has(p)"),选中包含有

元素的

元素,返回jQuery对象集合

$("td:parent"),选中所有包含子节点的元素,包括文本也可以算是子节点

Visibility Filters

$("span:hidden"),选中所有隐藏的

$("span:visible"),选中所有可见的

Attribute Filters

$("div[id]"),选中包含id属性的

元素

$("input[name$='letter']"),选中包含某个属性的元素,这个属性名是以'letter'结尾的

$("input[name^='letter']"),选中包含某个属性的元素,这个属性名是以'letter'开头的

$("input[name*='man']"),选中包含某个属性的元素,这个属性的属性名里包含'man'

$("input[name='newsletter']"),选中包含一个属性的元素,这个属性的名字是'newsletter'

$("input[name!='newsletter']"),选中所有不包含'newsletter'属性的元素

$("input[id][name$='man']"),选中包含id属性,和以'man'结尾属性的元素

Child Filters

$("ul li:nth-child(2)"),选中自身是

    元素的第二个子节点的
  • 元素,注意这个计算是从1开始的,不是从0开始

    $("div span:firstChild"),选中自身是

    元素的第一个子节点的元素

    $("div span:lastChild"),选中自身是

    元素的最后一个子节点的元素

    $("div span:onlyChild"),选中自身是

    元素的唯一子节点的元素

    Forms

    $(":button"),所有