如何从JQuery数组中删除最后一个元素?

时间:2014-02-11 10:07:41

标签: javascript jquery arrays element

我想在克隆对象中选择一些DOM元素,然后我想删除最后一项。在Chrome控制台中尝试后,我发现克隆的长度不会减少。

Chrome控制台示例:

crumbs =  $("span",$("div[style='width:390px;background-color:white;'")[0]).clone();

jQuery.fn.jQuery.init [114]

crumbs.last().remove()

[...]

crumbs.length

114

如您所见,长度仍然是114个元素。我错过了什么?

3 个答案:

答案 0 :(得分:6)

crumbs.last().remove()从DOM中删除最后一个匹配的元素,它不会将其从jQuery对象中删除。

要从jQuery对象中删除元素,请使用slice

var withoutLastOne = crumbs.slice(0, -1);

¹实际上这将创建一个匹配少一个元素而不是修改现有对象的新对象。你通常不会关心区别,但应该注意它。

答案 1 :(得分:1)

要从数组中删除最后一个元素,您也可以使用下面的代码。

var arr = ["item1", "item2", "item3", "item4"];
arr.pop();

Demo

答案 2 :(得分:0)

正如人们所说,.remove()从DOM中删除了元素。在最终结果上使用slice的另一个选择是在克隆元素之前使用jquery的过滤:

crumbs =  $("span",$("div[style='width:390px;background-color:white;'")[0]).not(':last').clone();