为什么我不能删除对象(JavaScript)?
我有下面的代码,我似乎找不到从thumbs对象中删除mainThumbs的方法。我试过使用splice(0,(maintumbs.length-1))、shift、delete thumbs[0],但似乎没有任何效果。这些函数呈现以下错误“Uncaught TypeError:thumbs.shift()不是函数”,而delete thumbs[0]只返回完整的未触及的拇指为什么我不能删除对象(JavaScript)?,javascript,arrays,dom,javascript-objects,Javascript,Arrays,Dom,Javascript Objects,我有下面的代码,我似乎找不到从thumbs对象中删除mainThumbs的方法。我试过使用splice(0,(maintumbs.length-1))、shift、delete thumbs[0],但似乎没有任何效果。这些函数呈现以下错误“Uncaught TypeError:thumbs.shift()不是函数”,而delete thumbs[0]只返回完整的未触及的拇指 var thumbs = document.querySelectorAll('.thumbnail'); va
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);
}
这是控制台针对拇指的输出:
(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]
拇指和主拇指的类型是object
有人能解释为什么我不能从thumbs对象中删除mainThumbs吗?
我还希望使用splice解决方案,而不是delete或shift,因为我发现它更准确。
文档。querySelectorAll
不返回数组。在某些方面,对象类似于数组,但并非完全如此
不过你解决这个问题的方法太复杂了。不要获取所有.thumbnail
元素,然后尝试删除.main thumbnail
元素,只需使用以下命令进行一次搜索:
document.querySelectorAll
不返回数组。在某些方面,对象类似于数组,但并非完全如此
不过你解决这个问题的方法太复杂了。不要获取所有.thumbnail
元素,然后尝试删除.main thumbnail
元素,只需使用以下命令进行一次搜索:
querySelectorAll('.thumbnail')
var thumbs=document.querySelectorAll('.thumbnail');
var maintumbs=document.querySelectorAll('.main-thumb');
var thumbsArr=Array.prototype.slice.call(thumbs);
var maintumbsarr=Array.prototype.slice.call(maintumbs);
对于(变量i=0;i
querySelectorAll('.thumbnail')
var thumbs=document.querySelectorAll('.thumbnail');
var maintumbs=document.querySelectorAll('.main-thumb');
var thumbsArr=Array.prototype.slice.call(thumbs);
var maintumbsarr=Array.prototype.slice.call(maintumbs);
对于(变量i=0;i
你想从数组或dom中删除它们吗?@JohnRodney-什么数组?没有数组。那么上面的控制台输出都是数组表示法。
querySelectorAll
函数返回的类似数组的对象。可以使用[].slice.apply(res)
将它们转换为一个数组。然后使用element.parentNode.removeChild(元素)你是想从数组还是dom中删除它们?@JohnRodney-什么数组?没有数组。那么上面的控制台输出都是数组表示法。querySelectorAll
函数返回的类似数组的对象。可以使用[].slice.apply(res)
将它们转换为一个数组。然后使用element.parentNode.removeChild(元素)代码>我没有意识到在搜索中否定的可能性。谢谢你,伙计!我没有意识到在搜索中否定的可能性。谢谢你,伙计!
(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]
var non_main_thumbs = document.querySelectorAll('.thumbnail:not(.main-thumbnail)');
var thumbs = document.querySelectorAll('.thumbnail');
var mainThumbs = document.querySelectorAll('.main-thumbnail');
var thumbsArr = Array.prototype.slice.call(thumbs);
var mainThumbsArr = Array.prototype.slice.call(mainThumbs);
for(var i = 0; i < mainThumbsArr.length; i++){
delete thumbsArr[0];
console.log(thumbsArr);
}