我们为什么想要使用循环读取结果集合呢?
一般来说,在选择集上执行任何的操作都将集合看成是一个整体,有些时候我们想单独地为每一个元素进行操作。此时我们就想到使用循环读取结果集合,当然你也可以不使用这个方法,看实际的需求以及哪种用法更加适合。而在这里我们会使用循环读取结果集合,它就相当于jQuery的for循环。
假定我们希望建立某个DOM元素中所有链接的一个列表(可能是这个有很多用户提供内容的网站,你希望快点查看用户提交的链接)。可以首先创建自己的jQuery$("#post a[href]"),这里将选择id为post具有href属性的所有链接,我们希望循环读取每个匹配的元素,将其附加到一个数组中,参见的代码如下:
var urls=[]//全局数组
$("#post a[href]".each(function(i){
urls[i]=$(this).attr("href");//this关键字是用来获取当前的DOM对象,将其包装在jQuery对象中
});
alert(urls.join(","));//其中join()方法是将一组参数链接起来。
那我们究竟怎样可以获得循环的集合呢?这里使用的是$().each()的方法,它可以循环读取jQuery对象中的每一个元素,建立一个数组,可以单独访问元素。它就是循环读取选择的DOM元素集,它在集合中循环,并为集合中的每一个元素提供了一个单独的函数作用域。不得不说它是专门用来对于Query对象中循环的。
不知道大家有没有见过这个写法的$.each(),这个方法的通用性更强,可以在对象和数组中循环的,遍历任何集合。