小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
先容我叭叭几句:
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中的方法。