[英]Trouble understanding and creating dynamic JavaScript objects
我希望我的代碼能夠自我解釋,我快要在那里了,我只是停留在如何將可選數據合並到具有多個級別的JSON對象的方式上(這就是它的意思嗎?)
//get video list - example: video1.flv;test23.flv;Grabledable.flv
var files = j('.videos').html().split(';');
// assume first we have one video, so no need of playlist
var isplaylist = false;
// check if there are actually more than one video
if (files.length > 1) {
isplaylist = true;
var playlist = new Array(); // is this right? I want to add this to the video var
for (var i in files) {
playlist[] = {
url: files[i],
title: 'Video ' + i
};
}
};
//here's where the trouble starts
var video = {
plugins: {
controls: {
playlist: isplaylist,
//i cut out all irrelevant extra data
}
},
clip: {
url: files[0],
// ONLY DO THIS IF isplayer == false;
wmode: 'opaque',
baseUrl: "/video/",
autoPlay: false
},
// from here on this should only occur if isplayer == true;
// following is the way I want it attached from var playlist
playlist: [{
url: 'video1.flv',
title: 'Video 0'
},
{
url: 'test23.flv',
title: 'Video 1'
},
{
url: 'Grabledable.flv',
title: 'Video 2'
}]
};
我的目標是此處列出的格式:JavaScript編碼部分下的http://flowplayer.org/plugins/javascript/playlist.html 。
如果我沒記錯的話,您想要這樣的東西:
var video = {
plugins: {
controls: {
playlist: false
}
},
clip: {
wmode: 'opaque',
baseUrl: "/video/",
autoPlay: false
}
}
// check if there are actually more than one video
if(files.length > 1){
video.plugins.controls.playlist = true;
var playlist = [];
for ( var i = 0, l = files.length; i < l; i++ )
{
playlist.push({url: files[i], title: 'Video '+ i});
}
video.playlist = playlist;
}
else {
video.clip.url = files[0];
}
動態添加相應的條目(例如video.playlist
或video.clip.url
)。 切勿使用for ( ... in ...)
構造遍歷數組!
碼:
// assuming you have video declared before
var video = { ... };
//get video list - example: video1.flv;test23.flv;Grabledable.flv
var files = j('.videos').html().split(';');
// assume first we have one video, so no need of playlist
var isplaylist = false;
// check if there are actually more than one video
if ( files.length > 1 ) {
isplaylist = true;
var playlist = new Array();
for ( var i = 0; i < files.length; i++ ) {
playlist.push ({
url: files[i],
title: 'Video ' + i
});
}
};
video.playlist = playlist;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.