1、jQuery对象与dom对象的转换
只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById(""msg""))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$(""#msg"")[0],$(""div"").eq(1)[0],$(""div"").get()[1],$(""td"")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的:
2 |
$( "" #msg"")[0].innerHTML; |
3 |
$( "" #msg"").eq(0)[0].innerHTML; |
4 |
$( "" #msg"").get(0).innerHTML; |
2、如何获取jQuery集合的某一项
对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。
有如下两种方法:
1 |
$( "" div "" ).eq(2).html(); |
2 |
$( "" div "" ).get(2).innerHTML; |
3、集合处理功能
对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。
包括两种形式:
1 |
$( "" p "" ).each( function (i){ this .style.color=[ '#f00' , '#0f0' , '#00f' ][ i ]}) |
2 |
$( "" tr "" ).each( function (i){ this .style.backgroundColor=[ '#ccc' , '#fff' ][i%2]}) |
3 |
$( "" p "" ).click( function (){alert($( this ).html())}) |
4、支持方法的连写
所谓连写,即可以对一个jquery对象连续调用各种不同的方法。连写代码风格估计是jQuery最有特色之一了。
例如:
1 |
$( "" p "" ).click( function (){alert($( this ).html())}) |
2 |
.mouseover( function (){alert( 'mouse over event' )}) |
3 |
.each( function (i){ this .style.color=[ '#f00' , '#0f0' , '#00f' ][ i ]}); |