0

ドキュメントレディでソート可能と宣言されている要素がいくつかあります。関数の後半で、toArrayを使用してそれらを配列に入れます。私がやりたいことは、この配列を繰り返し処理して、探している特定の要素を含む配列を取得します。配列をループして.findを使用しましたが、要素myarray [index]にはメソッドfindがないというメッセージが表示されたので、myarray.eq(index).findを試してみたところ、メソッドeqがないと表示されました。これに関する助けをいただければ幸いです。私のコードは以下の通りです。

  var imageBlocks = $(".imageBlocks").sortable("toArray");
  images = Array();

  for(i = 0; i < imageBlocks.length ; i++)
  {
    image = imageBlocks.eq(i).find(".post_image");
    if(image.length > 0){
      images.push(image); 
    }

  }
4

4 に答える 4

0

toArrray()は、私が持っていたオブジェクト自体の配列ではなく、オブジェクトのIDに対応する文字列の配列を返すように見えます。コードを次のように変更して、これを修正しました。

  var imageBlocks = $(".imageBlocks").sortable("toArray");
  images = Array();

  for(i = 0; i < imageBlocks.length ; i++)
  {
    imageID = $("#"+imageBlocks[i]);
    image = imageID.find(".post_image");

    if(image.length > 0){
      images.push(image);
    }    
  }
于 2013-02-18T18:10:37.857 に答える
0

これを試して:

image = imageBlocks[i].find(".post_image");

とcorrent$imageBlocks / imageBlocks

于 2013-02-18T17:49:39.970 に答える
0

imageBlocks === $ imageBlocks

this should work:

var imageBlocks = $(".imageBlocks").sortable("toArray");
  images = Array();

  for(i = 0; i < imageBlocks.length ; i++)
  {
    image = imageBlocks.eq(i).find(".post_image");
    if(image.length > 0){
      images.push(image); 
    }

  }
于 2013-02-18T17:50:06.610 に答える
0

あなたの限られた範囲を見ると、なぜこれがうまくいかないのか理解できません:

var myimages = imageBlocks.filter(function(){
     return $(this).find('.post_Image').length >0;
});
var myArray = myimages.toArray();

編集:連鎖:

var myArray = imageBlocks.filter(function(){
     return $(this).find('.post_Image').length > 0;
}).toArray();

ここで何かが足りませんか?

編集:明確にするために、あなたの例に使用してください。上記の私のコードは、実際の使用で拡張されています:

$(".imageBlocks").filter(function(){
     return $(this).find('.post_Image').length > 0;
}).toArray();

上記といくつかのマークアップと一緒にフィドルを配置して、完全に暗示されていることを確認できるようにします:http: //jsfiddle.net/kDNuc/

于 2013-02-18T18:56:18.487 に答える