$(document).ready(function(){
$(".item-title a").each(function(index) {
var yaz = $(this).attr("href");
$.ajax({
url: 'https://api-metrica.yandex.com/analytics/v3/data/ga?end-date=today&ids=ga%3A35416355&dimensions=ga:pagePath&metrics=ga:pageviews&filters=ga:pagePath=='+yaz+'&start-date=2015-10-25&oauth_token=AQAAAAAVs-uLAASpEAf-MmJK_kHgpU9Fwv8WArM',
type: 'get',
dataType: "jsonp",
success: function(data){
$(this).append(data.rows);
}
});
});
});
控制台:未捕获的TypeError:无法读取属性' createDocumentFragment'未定义的
有什么问题?
请帮助。
答案 0 :(得分:4)
这是因为this
回调中的success
上下文。
它没有像您期望的那样指向回调内的jQuery
对象。它将参考当前的背景。
success: function(data){
$(this).append(data.rows);;
}
将this
的上下文保存在success
之外并重复使用。
var cachedThis = this;
$.ajax({
...
success: function(data){
$(cachedThis).append(data.rows);;
}
...
});
相反,您可以使用bind
方法锁定上下文。
$.ajax({
...
success: function(data){
$(this).append(data.rows);;
}.bind(this)
...
});