首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从jQuery对象中删除元素

从jQuery对象中删除元素
EN

Stack Overflow用户
提问于 2013-12-17 21:21:42
回答 6查看 4.8K关注 0票数 4

我有一个jQuery对象,它是通过jQuery .find()创建的,如下所示。

代码语言:javascript
运行
复制
var $mytable= $('#mytable');
var $myObject = $mytable.find("tbody tr");

这很好,并为jQuery中的所有tr元素创建了一个tbody对象。但是,当我遍历数据时,我需要能够删除对象的一部分。例如,如果上面的调用返回一个长度为10的jQuery对象,名为$myObject,并且我想删除索引10,我认为我可以只执行$myObject.splice(10,1),它会删除索引10处的元素,但是这似乎不起作用。

知道为什么吗?谢谢!

更新

基本上,我只想在循环数据时从$myObject中删除任何元素。我知道这是基于零的(上面我猜是个坏例子),只是想让我明白我的观点。

更新

好的,我使用表上的find方法创建对象,在创建时它的长度是24。当我在对象上循环时,当我碰到一个不想要的元素时,我尝试使用Array.prototype.splice.call($rows,x,1),其中x表示要删除的索引。之后,当我在控制台中查看对象时,它的长度仍然是24。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-17 21:28:19

splice不是jQuery API的一部分,但是您可以通过应用原型在jQuery集合上应用本机数组方法:

代码语言:javascript
运行
复制
Array.prototype.splice.call($myObject, 9, 1); // 0-index

还可以使用pop删除最后一项:

代码语言:javascript
运行
复制
Array.prototype.pop.call($myObject);

这也会给您提供一个正确的length属性。

票数 2
EN

Stack Overflow用户

发布于 2013-12-17 21:23:48

使用.not()删除单个元素,然后在空闲时循环遍历jQuery对象:

代码语言:javascript
运行
复制
var $myObject = $mytable.find('tbody tr').not(':eq(9)'); // zero-based

http://jsfiddle.net/mblase75/tLP87/

http://api.jquery.com/not/

或者你可能要移除一个以上的:

代码语言:javascript
运行
复制
var $myObject = $mytable.find("tbody tr:lt(9)");

http://jsfiddle.net/mblase75/9evT8/

http://api.jquery.com/lt-selector/

票数 5
EN

Stack Overflow用户

发布于 2013-12-17 21:24:00

splice是数组方法,而不是jQuery对象方法。

试试slice

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20644937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档