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():合并命令链内最近产生的两个包装集;

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery,可以使用多种方式来定义数组。一种常见的方式是使用数组字面量表示法,就像在JavaScript一样。比如,可以使用以下方式定义一个空数组:var arr = []。也可以使用数组字面量表示法来定义包含特定元素的数组,例如:var arr = [1, 2, 3]。另一种方式是使用jQuery提供的数组方法,比如$.makeArray()方法可以将一个数组对象转换为一个真正的数组。通过这种方式,可以将任何一个jQuery对象转换为数组,例如:var arr = $.makeArray($(".myClass"))。还可以使用jQuery提供的其他方法来操作和处理数组数据,比如$.each()方法可以用来遍历数组的每一个元素。总的来说,jQuery提供了很多方法来方便地操作和处理数组数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JQUERY定义数组操作](https://blog.csdn.net/weixin_34293059/article/details/92234375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [JavaScript数组的创建与使用](https://blog.csdn.net/TheAndroid/article/details/84241346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值