gpt4 book ai didi

javascript - 为什么我无法删除对象 (JavaScript)?

转载 作者:行者123 更新时间:2023-11-30 08:24:35 25 4
gpt4 key购买 nike

我有下面的代码,但我似乎找不到从 thumbs 对象中删除 mainThumbs 的方法。我试过 splice(0,(mainThumbs.length - 1))、shift、delete thumbs[0],但似乎没有任何效果。这些函数呈现以下错误“Uncaught TypeError: thumbs.shift() is not a function”,而 delete 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]

并且 typeOf thumbs 和 mainThumbs 是对象

谁能解释为什么我似乎无法从 thumbs 对象中删除 mainThumbs?我还想要一个带有 splice 而不是 delete 或 shift 的解决方案,因为我发现它更准确。

最佳答案

document.querySelectorAll 不返回数组。在某些方面,该对象类似于数组,但并非全部。

不过,您解决此问题的方法过于复杂。与其获取所有 .thumbnail 元素,然后尝试删除 .main-thumbnail 元素,不如使用 the negation pseudo-class 进行一次搜索。 :

var non_main_thumbs = document.querySelectorAll('.thumbnail:not(.main-thumbnail)');

关于javascript - 为什么我无法删除对象 (JavaScript)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com