jQuery常用功能

175 阅读1分钟

jQuery 是一个高效、精简并且功能丰富的 JS 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。

jQuery 是一种封装DOM库的风格,也就是链式风格,window.jQuery是我们提供的全局函数,由jQuery函数构造出来的jQuery对象

window.$ = window.jQuery=function(selector)
// 以$开头的变量都是jQuery对象

1. jQuery 如何获取元素

$("div")    
// 直接通过元素名来获取<div></div>

$(".bd")    
// 给元素添加类,通过类名获取div元素,类名需要一个点 <div class="bd"></div>

$("#jingyan")  
// 通过id来获取div元素,
// id只能由一个不能重名 <div class="bd" id="jingyan"></div>

2. jQuery 的链式操作是怎样的

最终选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来,这是jQuery最令人称道、最方便的特点。它的原理在于每一步的jQuery操作,返回的都是一个jQuery对象,所以不同操作可以连在一起。比如:

$('div').find('h3').eq(2).html('Hello');

分解开来,就是这样的:

$('div') //找到div元素

   .find('h3') //选择其中的h3元素

   .eq(2)    //选择第3个h3元素

   .html('Hello'); //将它的内容改为Hello

3. jQuery 如何创建元素

使用$函数创建新元素

var $newElement=$('<div><span>1</span></div>')  
// 创建div元素,返回jQuery对象

说明1:创建的新元素不会自动的把新元素插入到页面中,我们还需要明确的指定其插入到页面中的位置:比如使用append方法,指定其插入位置为某个元素的最后一个子元素)。

.appendTo(document.body)  //插入到body中

说明2:返回的jQuery对象中只包含html片段最顶层(外层)的元素,对于后代元素我们可以像处理页面中已有元素一样,使用children或find方法访问。

说明3:既然可以直接append等方法插入html元素为何还要有这个创建新元素的功能?   

使用$函数创建元素,是返回的是jQuery对象,我们可以使用jQuery对象里面的方法在创建的这个元素被插入到页面之前进行各种操作。

4. jQuery 如何移动元素

jQuery设计思想之五,就是提供两组方法,来操作元素在网页中的位置移动。一组方法是直接移动该元素,另一组方法是移动其他元素,使得目标元素达到我们想要的位置。

假定我们选中了一个div元素,需要把它移动到p元素后面。

第一种方法是使用.insertAfter(),把div元素移动p元素后面:

$('div').insertAfter($('p'));

第二种方法是使用.after(),把p元素加到div元素前面:

$('p').after($('div'));

表面上看,这两种方法的效果是一样的,唯一的不同似乎只是操作视角的不同。但是实际上,它们有一个重大差别,那就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。你可以根据需要,选择到底使用哪一种方法。

使用这种模式的操作方法,一共有四对:

.insertAfter()和.after()       //在现存元素的外部,从后面插入元素
.insertBefore()和.before()    //在现存元素的外部,从前面插入元素
.appendTo()和.append()        //在现存元素的内部,从后面插入元素
.prependTo()和.prepend()      //在现存元素的内部,从前面插入元素

5. jQuery 如何修改元素的属性

使用attr()方法来修改:

$(selector).attr("属性名","属性值")
$(selector).attr({属性名:属性值})   //两种均可

设置属性值的语法:

$(selector).attr(attribute,value) //单个属性/值对
$(selector).attr({attribute:value,attribute:value ...})  //多个属性/值对

举例如下:

$("img").attr("width","380")
$("img").attr({width:"300",height:"350"})