以下のコードがあります。私は、親指オブジェクトからmainThumbsを削除する方法を見つけることができないようです。私はスプライス(0、(mainThumbs.length - 1))、シフト、削除の親指[0]で試してみましたが、何も動作していないようです。この関数は、次のエラーを返します。 'Uncaught TypeError:thumbs.shift()は関数ではありません'、delete thumbs [0]は親指の全体と手を戻します。オブジェクト(JavaScript)を削除できないのはなぜですか?
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がどのように見えるかです:
(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演算の親指とmainThumbsが
オブジェクトです:これは何の親指用のコンソール出力である
(3) [div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail, div.thumbnail.main-thumbnail]
誰も私がmainThumbsを取り除くことができないように思える理由を説明することができますfr om親指オブジェクト? さらに正確であるとわかったので、削除またはシフトではなく、スプライスによる解決が欲しいと思います。
あなたは、配列やDOMからそれらを削除しようとしていますか? –
@JohnRodney - どの配列ですか?配列はありません。 – Quentin
上記のコンソール出力は両方とも配列表記です。 'querySelectorAll'関数によって返されるArraylikeオブジェクトです。それらは '[] .slice.apply(res)'を使って配列に変換できます。次に、 'element.parentNode.removeChild(element);を使用してください。 –