小议jQuery对象中的类数组操作

我们都知道jQUery对象中有一个类数组的元素包装集,该集合类似js中的数组一样拥有 length属性,因此我们称此为类数组,下面我们就来总结下这个jQuery对象中的类数组时如 何进行操作的,看看我们的jQuery为我们都提供了哪些可用的方法:

size():很明显 ,它应该是返回包装集中的元素个数,如$('a').size()表示链接元素的个数;

get(index):当没指定index时就默认取包装集中所有元素,并以js中的数组形式返 回,如果指定了index,则返回下标为index对应的元素,如$('img[title]').get (0)返回包含属性title的第一个img元素,其也等效于$('img[title]')[0];

index(elem):在包装集中返回元素elem所在的下标,如果没找到该元素则返回-1;

add(String|elem|Array):把参数中的元素添加到包装集中,如果参数是jQuery选择 器,那么将把所有匹配的对象都添加到集合中,如果是html元素那就通过clean方法得到的元 素数组添加到集合中,如果是dom元素或dom元素数组,那就直接添加到集合了;注意返回的 是添加后的包装集;如$('img[alt]','img[title]')等效于$('img [alt]').add('img[title]')即返回包含了alt属性的img元素或包含了title属 性的img元素;

not(String|elem|Array):把包装集中满足参数条件的元素删除,注 意参数只能是筛选表达式,即以"["或者":"开头的表达式,如 $('img[title]').not('title*=puy')即返回包含title属性的img元素,并 且这些元素的title属性中包含有puy文本;返回的是筛选之后的包装集;

filter (String|function):如果传入的参数是String类型的话,那么该表达式必须也是筛选表达式 ,用于从包装集里删除所有与选择器不匹配的元素;如果传入的是一个函数的话,那么包装 集中的每个元素都调用这个函数,若这个函数返回false则把这个元素从包装集中删除,而在 函数中可以通过this关键字来调用当时包装集中调用方法的元素;如 $('td').filter(function(){return this.innerHTML.match(/^"d+$/)})返回 td中的内容为数字的所有td元素;

slice(begin,end):创建并返回新的包装集,该包 装集是原来包装集的连续的一部分,且新包装集的第一个元素是原包装集中的begin位置的元 素,而最后一个元素是end位置元素的前一元素,当然end可以不指定,那么将延伸到原始包 装集的末尾;如$('*').slice(2,3)这个语句选择页面上的所有元素,然后生存包含 原始包装集的第三个元素的新包装集,注意这个$('*').get(2)不同,这个返回的是 元素,而slice方法返回的是包装集,从而拥有包装集的操作;

childen():返回原始 包装集元素的所有不同子元素所组成的新包装集(不包含文本节点),如 $('div').children()返回所有div元素下的子元素所组成的新包装集;如果指定了 参数,那么该参数也是筛选表达式;

contents():返回原始包装集元素的内容新包装 集(可以包含文本节点);注意此方法不能接受参数进行过滤;

next():返回原始包装 集元素的所有唯一的下一个兄弟元素所组成的新包装集;如果指定了参数,那么该参数也是 筛选表达式;如$('div#someDiv').next()返回包含id为someDiv的div元素的下一个 兄弟元素的包装集;如果指定了参数,那么该参数也是筛选表达式;

nextAll():返 回包含原始包装集元素的所有后续兄弟的新包装集;如$('div#someDiv').nextAll ()返回包含id为someDiv的div元素的后面兄弟元素的新包装集;如果指定了参数,那么该参 数也是筛选表达式;

parent():返回原始包装集所有元素的唯一直接父元素的新包装 集;如果指定了参数,那么该参数也是筛选表达式;

parents():返回原始包装集所 有元素的祖先元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;

prev():返回原始包装集元素的所有唯一的上一个兄弟元素组成的新包装集;如果指 定了参数,那么该参数也是筛选表达式;

prevAll():返回包含原始包装集元素的所 有前面兄弟元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;

siblings():返回包含原始包装集元素中的所有唯一兄弟元素所组成的新包装集;如 果指定了参数,那么该参数也是筛选表达式;

find(String):返回包含原始包装集里 与传入的选择器表达式相匹配的所有元素的新包装集,并且原始包装集中的元素的后代也会 被传入新的包装集;

contains(text):返回包含text参数所传入的文本字符串的元素 所组成的新包装集;

is(String):如果包装集中含有String匹配的元素,那么返回 true,否则返回false;

clone(copyHandle):如果传入的参数为true,那么会连带事 件一起拷贝,否则不拷贝事件,形成一个新的包装集;

end():在jQuery命令链内调 用,以便返回退到前一个包装集;

andSelf():合并命令链内最近产生的两个包装集 ;

对于包装元素的操作就总结到这里,如果哪里不对的还请各位指出来方便大家参考 学习。

时间: 2024-12-03 21:18:43

小议jQuery对象中的类数组操作的相关文章

jQuery对象中的类数组操作

我们都知道jQUery对象中有一个类数组的元素包装集,该集合类似js中的数组一样拥有length属性,因此我们称此为类数组,下面我们就来总结下这个jQuery对象中的类数组时如何进行操作的,看看我们的jQuery为我们都提供了哪些可用的方法: size():很明显,它应该是返回包装集中的元素个数,如$('a').size()表示链接元素的个数: get(index):当没指定index时就默认取包装集中所有元素,并以js中的数组形式返回,如果指定了index,则返回下标为index对应的元素,如

JavaScript中的类数组对象介绍_javascript技巧

JavaScript中,数组是一个特殊的对象,其property名为正整数,且其length属性会随着数组成员的增减而发生变化,同时又从Array构造函数中继承了一些用于进行数组操作的方法.而对于一个普通的对象来说,如果它的所有property名均为正整数,同时也有相应的length属性,那么虽然该对象并不是由Array构造函数所创建的,它依然呈现出数组的行为,在这种情况下,这些对象被称为"类数组对象".以下是一个简单的类数组对象: 复制代码 代码如下: var o = {0:42,

jquery对象-jQuery对象中,this指向哪个对象

问题描述 jQuery对象中,this指向哪个对象 <script> $.fn.extend({ im : function(){ console.log($(this).attr('id')); console.log(this == document.body); console.log(this.nodeName); } }); $('body').im(); </script> 这样一段JS代码,this 应该是指向 body,但是,为什么 this == document

TreeLoader扩展,支持josn-plugin返回的json对象中包含的数组值

Struts2的josn插件 josn-plugin 对我们开发extjs程序很方便,但是他每次返回的数据格式都是以一个对象的方式返回的,对象中可以包含其他格式的数据,比如数组. 这就是一般的返回格式 Js代码 {"root":[{"address":"shenzhen","company":"Bank of China","manager":"true","

java中循环遍历数组操作时跳出循环问题

问题描述 java中循环遍历数组操作时跳出循环问题 在遍历数组时,对数组中的值进行比较的时候,如果不是数组内的元素要跳出循环 解决方案 可以啊,直接用break就可以跳出循环了. for (int x : arr1) { bool b = false; for (int y: arr2) { if (x == y) { b = true; break; } } if (!b) y不属于arr1 } 解决方案二: 难理解遍历数组怎么会出现不是数组的元素,实现跳出循环使用break就行了 解决方案三

从Jquery对象中获取标签

问题描述 从Jquery对象中获取标签 $("<div><span>456</span></div>") 如何从这个jquery 对象中获取 span标签呢 解决方案 var sp=$("<div><span>456</span></div>").find('span') alert(sp.html()) 解决方案二: 1.JQuery实现了?代码的分离,不用再网页中加入

关于访问对象中的类和方法

问题描述 关于访问对象中的类和方法 package com.sz; class Persion{ String name; int age; public void tell(){ System.out.println("姓名:"+name+",年龄"+age); } } public class Tell { @SuppressWarnings("null") public static void main(String[] args) { P

C#中Directory类目录操作(复制\重命名\创建\删除)

Directory 类用于典型操作,如复制.移动.重命名.创建和删除目录.也可将 Directory 类用于获取和设置与目录的创建.访问及写入操作相关的 DateTime 信息. 由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高.大多数 Directory 方法要求当前操作的目录的路径. 例  代码如下 复制代码 //1.---------文件夹创建.移动.删除------

.Net中队列类的操作与系统队列类queue的使用

class MyQueue { //存放元素的数组 private object[] _array; //增长因子 private int _growFactor; //队头下标 private int _head; //队尾下标 private int _tail; private int _size; private const int _MinGrow = 4; //初始容量 private const int _ShrikThreadhold = 0x20; public MyQueue