通俗易懂的jQuery思想

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

先容我叭叭几句:

jQuery这个东西,很多人现在说不学,不学,学框架,但是吧,我想说,你看看没坏处! 进入正题

参考中文文档:www.jquery123.com/

jQuery 如何获取元素

jQuery的基本设计思想和主要用法,就是 "选择某个网页元素,然后对其进行某种操作"
但是,请记住:jQuery是一个不需要加new的构造函数 它不需要写new jQuery()就能构造一个对象。

使用jQuery的第一步

将一个选择表达式,放进构造函数jQuery()(简写为$,window.$=window.jQuery),然后得到被选中的元素。比如:

$(document) //选择整个文档对象
$('#myId') //选择ID为myId的网页元素
$('div.myClass') // 选择class为myClass的div元素
$('input[name=first]') // 选择name属性等于first的input元素
复制代码

链式操作

jQuery的另一个设计思想就是最终选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来,比如:

$('div').find('p').eq(2).html('cc');
//找到div元素,选择其中的p元素,选择第3个p元素,将它的内容改为cc
复制代码

而实现这个操作的,恰巧就是一个return,每次操作之后,都会再返回jQuery对象,所以可以接着进行操作,除非你删了它,当然jQuery还提供了.end()方法,通俗讲就是返回你之前操作的对象。

jQuery 如何创建、移动、修改元素

元素的操作:创建

创建新元素的方法非常简单,只要把新元素直接传入jQuery的构造函数就行了:

$('<p>cc</p>');
$('<li class="red">red</li>');
复制代码

元素的操作:移动

jQuery中可以使用两种方法来实现把某个元素放到另一个元素的某个位置

第一种方法是使用.insertAfter(),比如:

$('div').insertAfter($('p'));
//把div元素移动p元素后面
复制代码

第二种方法是使用.after()

$('p').after($('div'));
//把p元素加到div元素前面
复制代码

而这两种方法唯一区别,也就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。

借用阮一峰老师的博客来说:用这种模式的操作方法,一共有四对:

  .insertAfter().after():在现存元素的外部,从后面插入元素

  .insertBefore().before():在现存元素的外部,从前面插入元素

  .appendTo().append():在现存元素的内部,从后面插入元素

  .prependTo().prepend():在现存元素的内部,从前面插入元素

元素的操作:修改

/*使用同一个函数,来完成取值(getter)和赋值(setter),即"取值器"与"赋值器"合一。
到底是取值还是赋值,由函数的参数决定。*/

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

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

//常见的取值和赋值函数如下:

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

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

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

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

  .height() //取出或设置某个元素的高度

  .val() //取出某个表单元素的值

/*需要注意的是,如果结果集包含多个元素,那么赋值的时候,将对其中所有的元素赋值;
取值的时候,则是只取出第一个元素的值(.text()例外,它取出所有元素的text内容)。*/
复制代码

这里就可以发现,直接设计一个函数,来完成getter与setter操作,这就是一个设计模式==>
(☞゚ヮ゚)☞设计模式

jQuery对象和DOM对象如何相互转换

jQuery对象转换成DOM对象

两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);

//可以通过[index]的方法,来得到相应的DOM对象
var $div = $('.red') //jQuery对象
var div = $div[0]   //DOM对象
复制代码

jQuery本身提供,通过.get(index)方法,得到相应的DOM对象

var $div = $('.red') //jQuery对象
var div = $div.get(0) //DOM对象
复制代码

DOM对象转成jQuery对象

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了==>$(DOM对象)

var div = document.querySelector('.red')  //DOM对象
var $div = $(div)     //jQuery对象
复制代码

转换后,就可以任意使用jQuery的方法了。

通过以上方法,可以任意的相互转换jQuery对象和DOM对象。需要再强调注意的是:

DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。

分类:
前端
标签: