2011-03-29 66 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 }); 
});