文章目录
操作jQuery集合确定集合大小集合转数组遍历集合元素过滤创建新HTML元素根据关系获取集合操作集合的其他方法
操作jQuery集合
确定集合大小
jQuery集合与数组很相似,我们可以像获取数组中元素的个数一样,通过length属性获取jQuery集合中元素的个数。例如,我们可以获取页面中所有
元素的,然后输出jQuery集合中
元素
alert($('p').length);
这是在 body 中的标题
这是在 body 中的第一个段落。
这是在 body 中的第二个段落。
这是在 div 中的 span 元素
这是在 div 中的第一个段落
这是在 div 中的第二个段落
这是在 div 中的最后一个段落
这是在另一个 div 中的第一个段落
这是在另一个 div 中的第二个段落这是在 p 中的 span 元素
这是在另一个 div 中的最后一个段落
这是在 body 中的最后一个段落。
window.jQuery || document.write('
$(function() {
var $p = $('p');
// 通过索引获取集合中的元素
console.log($p.get(2));
// 如果不传递索引值,则以数组的形式返回集合中所有的元素
console.log($p.get());
// 通过索引获取集合中的jQuery对象
console.log($p.eq(2));
// 通过索引从结尾处获取集合中的jQuery对象
console.log($p.eq(-2));
// 获取集合中第一个jQuery对象
console.log($p.first());
// 获取集合中第一个jQuery对象
console.log($p.last());
// 获取集合中class属性值为box的元素组成的集合
console.log($p.filter('.box'));
// 获取集合中class属性值不是box的元素组成的集合
console.log($p.not('.box'));
// 获取集合中索引从3到6之间的元素,不包含6
console.log($p.slice(3, 6));
// 获取具有span子元素的p元素
console.log($p.has('span'));
// 判断集合中是否有class属性值为box的元素
console.log($p.is('.box')); // true
// 获取集合中所有元素的ID
$p.map(function(index, ele){return this.id});
// 将集合转换的数组
console.log($p.toArray());
// 遍历集合
$p.each(function(index, ele){
console.log(index, ele);
});
// 获取id属性值为p5的元素在所有p元素中的索引
console.log($('#p5').index('p')); // 5
});
集合转数组
方法描述toArray()将jQuery集合转换成包含所有元素的数组。
遍历集合元素
方法描述each(iterator)遍历集合中的所有元素
获取元素的索引
方法描述index([element])返回元素在集合中对应的索引。
过滤
方法描述get([index])返回集合中指定索引的元素。如果不指定索引,则返回所有的元素。first()返回包含第一个元素的新集合。如果初始集合为空,则返回空集合。last()返回包含最后一个元素的新集合。如果初始集合为空,则返回空集合。eq(index)返回包含指定索引元素的新集合。参数可以为负数,表示从集合结尾开始计算。filter(selector)创建一个集合副本,然后从新集合中删除不符合selector选择器条件的元素。has(selector)创建并返回新的集合,只包含匹配selector选择器的子元素。not(selector)创建不包含选择器selector参数匹配元素的新集合。slice(start, [end])获取集合的子集。map(callback)在集合中的每个元素上调callback函数,然后返回值到一个jQuery对象中。is(selector)确定集合中是否有元素匹配给定的选择器。
创建新HTML元素
使用jQuery动态创建元素是非常容易的,只需要给$()函数传递一个包含HTML标签的字符串就可以创建一个jQuery对象。
$('
如果只是想创建一个空的
$('
');这种语法等价于下面的两种语法:
$('
$('
');假如要创建一个元素,它包含多个属性,并且可以点击该图片,我们可以下面的语法创建:
$('', {
src: 'img/photo.png',
alt: '',
title: '',
click: function() {
alert('nihao');
}
}).appendTo('body');
这段代码创建一个包含多个属性,并且可以点击的元素,然后将该元素追加到了页面上的
根据关系获取集合
方法描述(selector).parent(filter)返回元素的直接父元素。如果设置选择器,则只会返回匹配选择器的父元素。filter可选,规定缩小搜索父元素范围的选择器表达式。(selector).parents(filter)返回元素的祖先元素。如果设置选择器,则只会返回匹配选择器的祖先元素。filter可选,规定缩小搜索祖先元素范围的选择器表达式。(selector).parentsUntil(stop,filter)默认选择所有祖先元素。如果设置选择器和过滤器,则先通过选择器划定范围,然后使用过滤器选择元素。stop可选。表示在哪里停止搜索匹配的祖先元素的选择器表达式、元素、jQuery 对象。filter可选。规定缩小搜索子元素范围的选择器表达式。(selector).closest(filter,context)返回距离自己最近的(以自身为起点查找,包括自身),并且匹配选择器的祖先元素。filter必需。规定缩小搜索祖先元素范围的选择器表达式、元素或 jQuery 对象。context可选。在其内可以找到匹配元素的 DOM 元素。(selector).offsetParent()返回距离自身最近的(不包括自身),并且设置定位的祖先元素。(selector).children(filter)返回元素的直接子元素。如果设置选择器,则只会返回匹配选择器的子元素。filter可选。规定缩小搜索子元素范围的选择器表达式。(selector).find(filter)返回元素中匹配选择器的子元素。filter必需。过滤搜索后代条件的选择器表达式、元素或 jQuery 对象。(selector).prev(filter)返回元素前面的直接兄弟元素。(selector).prevAll(filter)返回元素前面的所有兄弟元素。(selector).prevUntil(stop,filter)默认选择前面的所有兄弟元素。如果设置选择器和过滤器,则先通过选择器划定范围,然后使用过滤器选择元素。(selector).next(filter)返回元素后面的直接兄弟元素。(selector).nextAll(filter)返回元素后面的所有兄弟元素。如果设置选择器,则只会返回匹配选择器的兄弟元素。(selector).nextUntil(stop,filter)默认选择后面的所有兄弟元素。如果设置选择器和过滤器,则先通过选择器划定范围,然后使用过滤器选择元素。(selector).siblings(filter)返回元素前后的所有兄弟元素。如果设置选择器,则只会返回匹配选择器的兄弟元素。
第1个段落
第2个段落
第3个段落
第4个段落
第5个段落
第6个段落
第7个段落
第8个段落
第9个段落
第10个段落
第11个段落
第12个段落
注意:
prevObject
jQuery选择器在遍历的过程中都会找到一组元素(一个jQuery对象), 然后jQuery会把这组元素推入到栈中。 prevObject属性就指向这个对象栈中的前一个对象, 而通过这个属性可以回溯到最初的DOM元素集。 利用这个DOM元素栈可以减少重复的查询和遍历的操作, 而减少重复操作也正是优化jQuery代码性能的关键所在。
操作集合的其他方法
方法描述.add()向集合中添加新元素。.addBack()把栈上前一个集合的元素添加到当前集合里,可以选择性提供选择器参数。.contents()查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容。.end()在jQuery链式调用中使用该方法;在当前调用链中结束最近的过滤操作,然后返回匹配元素的集合到之前的状态。
- list item 1
- list item 2
- list item 3
- list item 4
- list item 5
Hello百度搜索
end测试