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");

和正确的$imageBlocks / imageBlocks

于 2013-02-18T17:49:39.970 回答
0

图像块 === $图像块

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 回答