我的基本要求是我可以获取YouTube视频的标题,以便我可以访问它并将其应用到我的页面,但是我遇到了一个问题,我试图在评论中解释:
//first I declare my array and variable for the video information
var videoID = [];
var videoTitle;
//this ensures that the <div> exists
if ($("#productVideo0").length > 0) {
//then for every occurrence of and embedded video...
$(".youtube-video").each(function () {
//I call this function which strips the video id out of the URL (in the array[1] element]
videoID = getVideoID($(this).children().attr('src'));
//then I make the JSON call
$.getJSON('http://gdata.youtube.com/feeds/api/videos/' + videoID[1] + '?v=2&alt=jsonc', function (data) {
//if I alert this line below, it displays the title.
//However, if I try to alert or use this variable outside the function
//it just displays "undefined" or [object,object] depending on what I do
videoTitle = data.data.title;
})
})
}
//this uses regex to strip the id from the url
function getVideoID(url) {
url = url.match(/embed\/(\w*)/);
return url;
}
答案 0 :(得分:0)
为什么不尝试将所有data.data.title附加到列表中而不是每次都替换整个变量?也许最后一次迭代是将null设置为videoTitle变量。
var videoID = [];
var videoTitle = [];
//this ensures that the <div> exists
if ($("#productVideo0").length > 0) {
$(".youtube-video").each(function () {
videoID = getVideoID($(this).children().attr('src'));
//then I make the JSON call
$.getJSON('http://gdata.youtube.com/feeds/api/videos/' + videoID[1] + '?v=2&alt=jsonc', function (data) {
videoTitle.push(data.data.title);
})
})
}
答案 1 :(得分:0)
&#34;数据&#34; json对象在函数$ .getJSON中定义,一旦函数结束,对象将被销毁。 尝试在外部定义数据对象,并通过引用getJSON发送它。或者更好,但不要从外面打电话。