jQuery是一个快速,小型且功能丰富的JavaScript库。借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单。兼具多功能性和可扩展性,jQuery改变了数百万人编写JavaScript的方式。现如今jQuery依然是使用最广泛的javascript函数库。
jQuery获取元素
jQuery的设计思想和主要用法,就是“选择某个网页元素,然后对其进行某种操作”,这是这区别其他JavaScript库的根本特点。使用jQuery的第一步,是将一个选择表达式放进构造函数jQury()里面[为了方便jQuery可用$代替],选择表达式可以是CSS选择器和jQuery特有的表达式。
$('.red')//选择class:red的元素
$('#toc')//选择id:toc的元素
$('input[name=first]')//选择属性name属性为first的元素
$(document)//选择整个文档对象
jQuery特有的选择器:
$('a:first')//选择网页中第一个a元素
$('tr:odd')//选择表格的奇数行
$('#myForm :input')//选择表单中的input元素
$('div:visible') //选择可见的div元素
$('div:gt(2)')//选择所有的div元素,除了前三个
$('div:animated')//选择当前处于动画状态的div元素 2.jQuery的链式操作
jQuery风格也叫链式风格,正是因为它强大的链式操作这个功能,jQuery是一个特殊的函数,它用来获取对应的元素,但是他返回的是一个对象,这个对象称为jQuery构造出来的对象,这个对象包含了一个函数,所以又可以操作对应的元素。他在这个过程中也用到了闭包。
比如:我们在我们在$(#test)获取的元素里查找class=child的元素,再在这个元素里面添加clss=red,我们直接可以这样:
$('#test').find('child').addClass(red);就实现了我们的需求,而不用写多句代码来进行操作,大大的提高了我们的效率。
而且jQuery还提供了.end()方法,使得结果集可以后退一步
$('#test').find('child').end().addClass(red);
这样的效果就是只在test里面添加red。 
是不是特别的方便。
3.jQuery创建元素
创建新元素的方法非常简单,只要把新元素直接传入jQuery的构造函数就行了,以下为实现代码:
window.$ = window.jQuery = function(selectorOrArrayOrTemplate) {
let elements;
if (typeof selectorOrArrayOrTemplate === "string") {
if (selectorOrArrayOrTemplate[0] === "<") {
// 创建 div
elements = [createElement(selectorOrArrayOrTemplate)];
} else {
// 查找 div
elements = document.querySelectorAll(selectorOrArrayOrTemplate);
}
} else if (selectorOrArrayOrTemplate instanceof Array) {
elements = selectorOrArrayOrTemplate;
}
function createElement(string) {//根据字符串内容创建
const container = document.createElement("template");
container.innerHTML = string.trim();
return container.content.firstChild;
}比如创建一个div
4.jQuery移动元素
操作元素网页中的位置,有两种方法:第一种是移动该元素的位置来达到想要的效果;第二种是移动其他元素的位置,使得目标元素达到我们想要的位置。
第一种方法是使用.insertAfter(),把div元素移动p元素后面:
$('div').insertAfter($('p'));第二种方法是使用.after(),把p元素加到div元素前面:
$('p').after($('div'));表面上看,这两种方法的效果是一样的,唯一的不同似乎只是操作视角的不同。但是实际上,它们有一个重大差别,那就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。你可以根据需要,选择到底使用哪一种方法。
使用这种模式的操作方法,一共有四对:
.insertAfter()和.after():在现存元素的外部,从后面插入元素
.insertBefore()和.before():在现存元素的外部,从前面插入元素
.appendTo()和.append():在现存元素的内部,从后面插入元素
.prependTo()和.prepend():在现存元素的内部,从前面插入元素5.jQuery修改元素的属性
操作网页元素,最常见的需求是取得它们的值,或者对它们进行赋值。就是使用同一个函数,来完成取值(getter)和赋值(setter),即"取值器"与"赋值器"合一。到底是取值还是赋值,由函数的参数决定。
$('h1').html(); //html()没有参数,表示取出h1的值
$('h1').html('Hello'); //html()有参数Hello,表示对h1进行赋值常见的取值和赋值函数如下:
.html() 取出或设置html内容
.text() 取出或设置text内容
.attr() 取出或设置某个属性的值
.width() 取出或设置某个元素的宽度
.height() 取出或设置某个元素的高度
.val() 取出某个表单元素的值需要注意的是,如果结果集包含多个元素,那么赋值的时候,将对其中所有的元素赋值;取值的时候,则是只取出第一个元素的值(.text()例外,它取出所有元素的text内容)。
参考文献:
阮一峰的《jQuery设计思想》
jQuery 中文文档
前端小白,如有错误请留言指正!!!