我想在克隆对象中选择一些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个元素。我错过了什么?
答案 0 :(得分:6)
crumbs.last().remove()
从DOM中删除最后一个匹配的元素,它不会将其从jQuery对象中删除。
要从jQuery对象中删除元素,请使用slice
:
var withoutLastOne = crumbs.slice(0, -1);
¹实际上这将创建一个匹配少一个元素而不是修改现有对象的新对象。你通常不会关心区别,但应该注意它。
答案 1 :(得分:1)
答案 2 :(得分:0)
正如人们所说,.remove()
从DOM中删除了元素。在最终结果上使用slice
的另一个选择是在克隆元素之前使用jquery的过滤:
crumbs = $("span",$("div[style='width:390px;background-color:white;'")[0]).not(':last').clone();