示例:http://jsfiddle.net/CFXXC/5/ 我有下面的HTML,使用正则表达式的src我可以提取每个img的ID并使用json我可以获取图像标题并将其作为属性返回但它不起作用。
<img src="http://i2.ytimg.com/vi/3ZqlS5A9Kjc/hqdefault.jpg"/>
<img src="http://i2.ytimg.com/vi/GRLtkjLxkiY/hqdefault.jpg"/>
$('img[src^="http://i2.ytimg.com/vi/"]').each(function(){ // selector and each function
var regex = new RegExp(/\/vi\/(.*)\//); //regex variable
var imgsrc = $(this).attr("src"); //Individual img's src
var id = imgsrc.match(regex)[1];
$.ajax({
url: "http://gdata.youtube.com/feeds/api/videos/"+id+"?v=2&alt=jsonc", //using regex extracted id
dataType: "json",
success: function (data) {parseresults(data)}
});
function parseresults(result) {
console.log(result);
var imgtitle = result.data.title;
$(this).attr("title", imgtitle); //setting title from extracted id
}
});
$(document).ready(function () {
getYouTubeInfo();
});
答案 0 :(得分:1)
您的变量范围错误。你在parseresult中的“this”并不是指图像。
这个怎么样( jsFiddle ):
$('img[src^="http://i2.ytimg.com/vi/"]').each(function() { // selector and each function
var regex = new RegExp(/\/vi\/(.*)\//); //regex variable
var imgsrc = $(this).attr("src"); //Individual img's src
var id = imgsrc.match(regex)[1];
var img = this;
$.ajax({
url: "http://gdata.youtube.com/feeds/api/videos/" + id + "?v=2&alt=jsonc",
//using regex extracted id
dataType: "json",
success: function(data) {
parseresults(img,data)
}
});
function parseresults(img,result) {
var imgtitle = result.data.title;
$(img).attr("title", imgtitle); //setting title from extracted id
}
});