【发布时间】:2018-05-22 15:00:54
【问题描述】:
我有下面的代码,但我似乎找不到从 thumbs 对象中删除 mainThumbs 的方法。我已经尝试过 splice(0,(mainThumbs.length - 1))、shift、delete thumbs[0],但似乎没有任何效果。这些函数呈现以下错误“未捕获的 TypeError:thumbs.shift() 不是函数”,而删除 thumbs[0] 只返回整个拇指并且未触及。
var thumbs = document.querySelectorAll('.thumbnail');
var mainThumbs = document.querySelectorAll('.main-thumbnail');
for(var i = 0; i < mainThumbs.length; i++){
delete thumbs[0];
console.log(thumbs);
}
这是 mainThumbs 的样子:
(3) [div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail]
这是控制台为拇指输出的内容:
(12) [div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail, div.thumbnail.modal-open, div.thumbnail, div.thumbnail, div.thumbnail, div.thumbnail, div.thumbnail, div.thumbnail, div.thumbnail, div.thumbnail]
thumbs 和 mainThumbs 的 typeOf 是 object
谁能解释为什么我似乎无法从 thumbs 对象中删除 mainThumbs ? 我还想要一个带有拼接而不是删除或移位的解决方案,因为我发现它更准确。
【问题讨论】:
-
您是要从数组还是 dom 中删除它们?
-
@JohnRodney — 什么数组?没有数组。
-
以上控制台输出都是数组表示法。
querySelectorAll函数返回的类数组对象。可以使用[].slice.apply(res)将它们转换为数组。然后使用element.parentNode.removeChild(element);
标签: javascript arrays dom javascript-objects