`
zzx0421
  • 浏览: 97057 次
  • 性别: Icon_minigender_1
  • 来自: 株洲/深圳
社区版块
存档分类
最新评论

jQuery中10个非常有用的遍历函数

阅读更多
使用jQuery,可以 很容易的选择HTML元素。但有些时候,在HTML结构较为复杂时,提炼我们选择的元素就是一件麻烦的事情。在这篇教程中,我们将探讨十种方 法去精炼和扩展我们将要操作的集合。

HTML

首先,让我们看看下图所示的简单的页面,通过这个教程我们将选择这些元素。

div.container是包裹元素;

div.photo、div.title、div.rating是div.container的直接子级;

每个div.star是div.rating的子级;

当div.satr的class为“on”时, 它是一个完整的star。



为什么要遍历?

“为什么我们要进一步提炼一系 列元素,难道是jQuery选择语法不够 强大?”

好,让我们从示例开始。在上面提到的网页中,当一个star被 点击时,我们需要给它以及左边的每个star添加class“on”。与此同时,我们要改变所有star父元素的背景颜色,因此,我们的代码如下:

$('.star').click(function(){

         $(this).addClass('on');

//       如何选取当前对象的 父元素?

//       如何获得当前star左侧所有的star?

});

在第二行,我们得到了我们点击的当前对象。但是,如 何得到stars的父级?即div.rating。但是,在一个页面中,有很多div.rating。哪一个是我们想要的?如何获得“this”左边所有的star?

可喜的是,jQuery允 许我们基于这些基层关系,在现存集合的基础上获得新的元素集合。而这些正是遍历函数发挥作用的地方。

1、children

这个函数得到一组元素的直接子级。

在很多情况下会很方便,看看下面这张图:

开始的时候容器中的star全部被选择;

给children()传递一个选择表 达式将选择结果缩小至选中的star;

如果chilidren()每接受任何 参数,将返回所有直接子级;

不返回孙级元素。



2、filter

这个函数通过传递的选择表达式从一个集合中过滤元素。任何不匹配这个表达式的元素将从选择的集合中移除。

下面的这个例子直截了当。从 5个star中过滤出class为“on”的star。



3、not

与filter恰恰相 反,not()从集合中移除匹配的元素。

看下面这个例子。偶数列的star从 选择集合中移除,留下的是奇数行的star。



“ 注意:'Even'和'odd'选择器是从0开始的,从0开 始计数,不是从1。”

4、add

如果我们想在集合中增加一些元素怎么办?add()函 数正是做这件事的。

同样简单明了,photo盒 子被添加到集合中。



5、slice

有时候,我们需要根据元素在集合的位置获取集合的子集。sliece()正是做这个的。

第一个参数是从零开始的第一个元素的位置,它包含在返回的片段中;

第二个参数是从零开始的第一个元素的索引。不包含在返回的片段中。如果省略,将延伸至集合的末尾;

所以,slice(0,2)将选取前两 个star。



6、parent

parent()函数选取一系列元素的直接父级。

正如下图所示,第一个star的 直接父级被选中。非常方便,应当指出,它仅仅返回直接父级,为什么很奇特?因为没有祖父元素或祖先元素被选中。



7、parents

这是复数形式,parents()选 择集合的所有祖先元素。我的意思是所有祖先元素包括直接父级到“body”和“html”元素。所以最好通过传递表达式缩小选择结果。

通过给parents()传 递.container参数,div.container将被选中,它实际上第一个star的祖父。



8、siblings

这个函数选择一组元素的所有兄弟姐妹,传递一个表达式可以筛选结果。

看看这个例子:

谁是第一个star的兄弟节点?其它的四个,对 不?

如图所示,“odd”的节点被选中。索 引是从零开始的,看看下面star的红色数字。



9、prev & prevAll

prev()函数选择前一个兄弟节点。prevAll()选择一个元素集合前面所有的兄弟节点。
如 果你正在构建一个星级部件,这将相当方便。第三个star前面的兄弟节 点被选中。



10、next & nextAll

这些函数与prev和prevAll工作方式相同,不过它选择的是下一个兄弟姐妹。



结论

最后,让我们来看看如何利用这些函数来解决现实世界中令我们头痛的问题。



$('.star').click(function(){

         $(this).addClass('on');

//       如何取得当前对象的 父级?

         $(this).parent().addClass('rated');

//       如何获得当前对象左 侧的star?

         $(this).prevAll().addClass('on');

         $(this).nextAll().removeClass('on');

});

这就是这篇教程中早期提到的问题,对吗?在这几行代码中我们使用了这几个遍历函数。

在第5行,看看parent()函数,啊哈,真简单。

在第8行和9行,prevAll()和nextAll().选择填充的star和 空的star。

现在,遍历函数是做么的方便。当在一起使用时,它们将更加强大。也就是说,一个函数的输出是另一个函数的输 入,它们是链式的。
转载自:http://www.chinaz.com/Program/XML/033011015R010.html
分享到:
评论

相关推荐

    jQuery中非常重要的遍历函数.doc

    使用jquery来操作HTML组件非常方便,那么怎么把组件找到呢,这就用到了jquery的遍历,学会了遍历,其它就只是调用功能与方法了,本文为网络上找到的资源总结,感谢网友们的无私奉献。

    jQuery 遍历函数详解

    介绍了几个在jQuery中非常有用的遍历函数,遍历函数是做么的方便。当在它们一起使用时,它们将更加强大。也就是说,一个函数的输出是另一个函数的输入,它们是链式的。下面我们就来详细探讨下吧。

    浅析jQuery 遍历函数,javascript中的each遍历_.docx

    浅析jQuery 遍历函数,javascript中的each遍历_.docx

    jQuery中常用的遍历函数用法实例总结

    本文实例总结了jQuery中常用的遍历函数用法。分享给大家供大家参考。具体如下: 1. children()函数 children()函数用于选取每个匹配元素的子元素,并以jQuery对象的形式返回。 你还可以使用选择器进一步缩小筛选范围...

    jQuery操作函数

    内容包括:jQuery Ajax 操作函数,jQuery 选择器,jQuery 事件处理方法,jQuery 事件方法,jQuery 效果函数,jQuery 文档操作方法,jQuery 属性操作方法,jQuery CSS 操作函数,jQuery 遍历函数

    浅析jQuery 遍历函数,javascript中的each遍历

    jQuery 遍历函数 jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。 函数 描述 .add() 将元素添加到匹配元素的集合中。 .andSelf() 把堆栈中之前的元素集添加到当前集合中。 .children() 获得匹配...

    jquery遍历函数siblings()用法实例

    主要介绍了jquery遍历函数siblings()用法,结合实例形式较为详细的分析了jquery的siblings函数用于元素遍历的相关技巧,需要的朋友可以参考下

    使用JQuery选择HTML遍历函数的方法

    这个函数通过传递的选择表达式从一个集合中过滤元素。任何不匹配这个表达式的元素将从选择的集合中移除。 3、not 与filter恰恰相反,not()从集合中移除匹配的元素。 4、add 如果我们想在集合中增加一些元素怎么办?...

    jQuery 遍历map()方法详解

    map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。 二、语法 .map(callback(index,domElement)) 三、详细说明 由于返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以...

    Jquery使用each函数实现遍历及数组处理

    主要介绍了Jquery使用each函数实现遍历及数组处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历

    使用jQuery可以更加容易地遍历DOM的父级、子级和同级元素,这里我们就来举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历:

    jquery中map函数遍历数组用法实例

    主要介绍了jquery中map函数遍历数组用法,实例分析了jQuery中map函数遍历数组的相关技巧,并提供了一个自定义遍历数组函数供参考之用,需要的朋友可以参考下

    jQuery基础.pptx

    jQuery是一个JavaScript函数库 轻量级,“写的少,做的多” 包含以下功能: HTML元素选取 HTML元素操作 CSS操作 HTML时间函数 JavaScript特效和动画 HTML DOM遍历和修改 AJAX(异步 JavaScript 和 XML。) 2、jQuery...

    jquery属性,遍历,HTML操作方法详解

    下面是我整理的一些jquery遍历函数: .add() 将元素添加到匹配元素的集合中。 .andSelf() 把堆栈中之前的元素集添加到当前集合中。 .children() 获得匹配元素集合中每个元素的所有子元素。 ....

    关于jquery中全局函数each使用介绍

    jquery 包含了两个each一个是 $().each 另一个是 $.each 区别就在于前一个是jquery对象的内置函数 而后一个 这是对象的遍历函数 一般用于ajax中获取不同的对象数据进行遍历以json为例 jquery 的getJSON 快捷方法可以...

Global site tag (gtag.js) - Google Analytics