如何将变量分配给已使用.replace()操作的返回JSON数据,如下所示。 目的:根据JSON返回的视频ID构建视频缩略图的网址。
问题:如何将视频ID(例如mVWhWsgHzKM)分配给变量,以便构建缩略图URL。
$.getJSON(
'http://gdata.youtube.com/feeds/users/soccerdude1935/favorites?alt=json-in-script&callback=?',
function(data){
$.each(data.feed.entry, function(i, item){
// assign variable to the returned JSON data
var id = item['id']['$t'];
// URL contain video ID is put inside a P tag and assign class ID.
$("<p></p>").text(id).addClass('vidId');
$('p.vidId').each(function () {
var id = $(this).text();
// removes all other text from URL except for video ID.
id = id.replace("http://gdata.youtube.com/feeds/videos/","");
// video ID is assigned to a var. Is this correct? because it is not working as a var.
// Note: no errors when running the code.
var imgSrc = $(this).text(id);
});
// thumbnail URL construction and placement inside a img element's src tag.
$(<img />).attr('src', 'http://i2.ytimg.com/vi/'+imgSrc+'/default.jpg');
});
});
导致img src URL看起来像:http://i2.ytimg.com/vi/mVWhWsgHzKM/default.jpg但是当我运行该代码时,它不会呈现所需的结果。有什么建议吗?
任何想法都将不胜感激。感谢。
答案 0 :(得分:1)
我剥离了代码以实际让它呈现。我刚刚创建了一个id = video的div标签,然后将每个缩略图附加到容器中。
使用您的代码,问题出现在您的第二个声明中。它无法运行,因此它永远不会为imgSrc
赋值。现在这可能是因为我没有HTML。
<div id="video"></div>
<script>
$(document).ready(function () {
$.getJSON('http://gdata.youtube.com/feeds/users/soccerdude1935/favorites?alt=json-in-script&callback=?',
function(data){
$.each(data.feed.entry, function(i, item){
var id = item['id']['$t'];
id = id.replace("http://gdata.youtube.com/feeds/videos/","");
$("#video").append('<div id="'+id+'">');
$("#video").append('<img src="http://i2.ytimg.com/vi/'+id+'/default.jpg">');
$("#video").append('</div>');
});
});
});
</script>