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 ]}); |