2011-03-29 72 views
4

可能很容易的问题,我从来没有这样做过...我试图找出你将如何填充一个jQuery插件属性对象/数组或任何你用一个普通的数组来调用它。如何获取数组到jQuery插件属性对象/数组

var imageArray = new Array(); 
imageArray = ['images/1000x800.png','images/495x880.png','images/600x800.png']; 

所以,我试图让进...插件属性“形象”与图像的未知量...

jQuery(function($){ 
    $.myPlugin({ 
    slides : [ 
     {image : 'images/1000x800.png'}, 
     {image : 'images/495x880.png'}, 
     {image : 'images/600x800.png'}, 
     //...etc... 
    ] 
    }); 
}); 

这里是我想要一个例子做...虽然我不知道正确的语法...

jQuery(function($){ 
    $.myPlugin({ 
    slides : [ for(var i=0; i<imageArray.length; i++) { 
       image = imageArray[i]; 
       } 
    ] 
    }); 
}); 

任何帮助表示赞赏!

回答

2

使用$.map

var imageArray = ['images/1000x800.png','images/495x880.png', ...]; 
$.myPlugin({ 
    slides: $.map(imageArray, function (el) { return {image: el}; }); 
}); 
+0

我发现这是最完美的解决方案...的伟大工程! – 2011-03-29 18:58:54

1

这应该将它转换...

var imageArray = ['images/1000x800.png','images/495x880.png','images/600x800.png']; 

for(var i=0; i<imageArray.length; i++) { 
    imageArray[i] = {'image': imageArray[i]}; 
} 

jsFiddle

虽然注意,这将转换原始数组。如果你想为此添加第二个,只需用循环内的对象var new = []new.push()来创建一个新对象。

0

为什么不直接定义你需要的数组而不是定义一个数组并转换?

var imageArray = [ 
        { image: 'images/1000x800.png' }, 
        { image: 'images/495x880.png' }, 
        { image: 'images/600x800.png' } 
       ]; 

jQuery(function($) { 
    $.myplugin({ slides: imageArray }); 
});