2017-02-06 4 views
1

これを理解するのは本当に苦労しています。私はimgタグのsrcに/resize/という単語があるかどうかに基づいてすべてのイメージタグを選択しています(私はその配列を返すと思います...?)。次に、各srcをチェックして、そのimgタグのsrc位置にファイルが指定されているかどうかを確認します。イメージが存在する場合、配列からそのイメージを取り出したいが、削除しない。また、Uncaught TypeError: images.indexOf is not a functionと言っています。ここでjQueryのオブジェクト配列からアイテムを取り出します

は私のコードです -

var images = []; 
var images = $(' img[src*="/resize/"]'); 

console.log(images); 

$.each(images, function(key, value){ 
    var getFile = $(value).data('src'); 
    $.ajax({ 
     type: 'HEAD', 
     url: getFile, 
     success: function() { 
      var index = images.indexOf(key); 

      if (index > -1) { 
       images.splice(index, 1); 
      } 
     }, 
     error: function() { 

     } 
    }); 
    x++; 
}); 

誰かが助けてくださいことはできますか?これは私を殺しています...

+0

「画像」の種類は分かりますか? 'indexOf'メソッドはありません。 – dfsq

+1

最後に、サーバー上に対応するファイルを持たない画像のコレクションを持たせたいのですか? – dfsq

+0

本質的にはyes dsfqです。すべての画像はすでに '/ files /'にあります。私がしたいことは '/ resize/files /'に存在しないかどうかをチェックすることです。src/donで '/ resize /'を持つすべてのイメージでリファクタリングされた配列を作成しなければ'/ files /'からoringinalイメージファイルを取得し、ajaxクロップスクリプトを実行し、 '/ resize/files'に存在するようにします。 –

答えて

1

$(またはjQuery)コンストラクタはjQueryオブジェクトを返します。

しかしjQueryオブジェクトが真のJavaScript Arrayないとの多くを持っていない等... jQueryのオブジェクトが等長、スライス法による配列のようはるかに振る舞うならびに要素は0、1、2をインデックス付けjoinreverseなどの配列メソッド、またはケースindexOfなどの配列メソッド。

代わりにindexメソッドを使用できます。 Read more about it on jQuery API Documentation

+0

jQueryオブジェクト(Array.prototype.forEach.call(y => console.log(y))でArrayメソッドを実際に呼び出すことができるので、 )。 実際には、配列のようなオブジェクトを頻繁に使用します。 'document.querySelectorAll'を使うと配列メソッドを持たない' NodeList'が返されます。 'Array.prototype.slice.call(nodeList、0)'を実行すると真の配列として返されます(マップ、フィルター、縮小などができます) EDIT:コメントした人のコメントを削除したようです。私はここに残しておきます。 – Phillip

関連する問題