使用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中十个重要的遍历函数,并通过实例展示它们的用途。 1. **children()**: - children()函数用于获取一个元素的所有直接子元素。例如,如果你有一个`div.container`,你可以使用`.children()`...
下面我们详细讲解这些jQuery遍历函数的知识点。 .add()函数用于将元素添加到jQuery对象集合中。这个函数可以将新元素直接添加到现有的jQuery对象集合中,实现链式操作。 .andSelf()函数将之前操作返回的元素集添加...
jQuery 遍历函数和 JavaScript 中的 each 遍历 jQuery 遍历函数是 jQuery 库中的一组方法,用于筛选、查找和串联元素。这些方法可以帮助开发者快速地操作和处理 HTML 元素。下面是 jQuery 遍历函数的详细介绍: 1....
### jQuery中十个有效的遍历函数 #### 一、引言 在前端开发中,jQuery作为一个功能强大的库,极大地简化了JavaScript编程。特别是在处理DOM(Document Object Model)元素方面,jQuery提供了一系列简便的方法来...
这个“jQuery遍历学习”的主题主要关注如何使用jQuery来高效地遍历DOM元素,以实现对网页内容的控制和操作。 首先,jQuery提供了多种遍历方法,包括基本的选择器和遍历函数。选择器如`$()`用于选取DOM元素,可以...
本文实例总结了jQuery中常用的遍历函数用法。分享给大家供大家参考。具体如下: 1. children()函数 children()函数用于选取每个匹配元素的子元素,并以jQuery对象的形式返回。 你还可以使用选择器进一步缩小筛选范围...
在提供的压缩包文件"3-11遍历节点树"中,可能包含了一个示例或教程,详细演示了如何使用jQuery进行节点遍历。通过学习和实践这个例子,你将更好地理解这些方法的实际应用。请打开文件进行深入研究,进一步巩固你的...
标题中提到的“jquery...通过本文的实例演示,读者应该对如何在jQuery中使用map函数遍历数组有了更深入的理解,并且掌握了一个自定义数组遍历函数的实现方法,这对在日常开发中处理数组数据提供了更多的灵活性和选择。
jQuery的`each()`方法允许我们遍历jQuery对象中的每一个元素,并执行指定的函数。以下是如何遍历所有`<p>`元素并打印其内容的示例: ```javascript $("p").each(function(index, element) { console.log($(this)....
在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理和Ajax交互等任务。当处理复杂的HTML结构时,有效地选择和遍历元素是至关重要的。本篇文章将详细解析如何使用jQuery中的选择和遍历函数...
浅析jQuery遍历函数及其在JavaScript中的应用 jQuery作为一个强大的JavaScript库,提供了丰富的API供开发者使用,其中遍历函数是其核心功能之一。这些函数帮助我们有效地操作DOM元素,实现数据处理和页面交互。本文...
通过对jquery遍历函数siblings()用法的介绍,以及结合实际的示例分析,我们可以看到如何利用这个函数来对页面元素的同级兄弟进行操作。对于使用jQuery进行前端开发的开发者来说,掌握此类函数能显著提高开发效率和...
这是一个非常有用的jQuery方法,可以移除集合中所有匹配元素的子节点,从而确保在添加新的option之前select列表是空的。 以上就是这篇关于"jquery动态遍历select赋值的实例"中涉及的主要知识点。通过本文的介绍和...
当我们需要遍历HTML元素时,`each()`函数也非常有用。例如,遍历所有隐藏的`<input>`元素: ```javascript $("input:hidden").each(function(i, val) { console.log(this.name, this.value); }); ``` 这将...
map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。 二、语法 .map(callback(index,domElement)) 三、详细说明 由于返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以...
jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了对网页 DOM 元素的操作,包括动态添加节点和遍历节点。在网页开发中,这些功能非常重要,因为它们允许开发者动态更新页面内容,提升用户体验。 首先,我们来...