“无法读取未定义的属性'createDocumentFragment'”

Mel*_*tik 3 javascript each jquery this

$(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);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

控制台:未捕获的TypeError:无法读取未定义的属性'createDocumentFragment'

怎么了
请帮忙。

Sus*_* -- 5

这是由于回调中的this上下文success。它不指向jQuery您期望的回调内的对象。它将引用当前上下文。

success: function(data){  
    $(this).append(data.rows);;
}
Run Code Online (Sandbox Code Playgroud)

保存this外部的上下文success并重新使用它。

var cachedThis = this;

$.ajax({
   ...
   success: function(data){  
      $(cachedThis).append(data.rows);;
   }
   ...
});
Run Code Online (Sandbox Code Playgroud)

相反,您可以使用该bind方法来锁定上下文。

$.ajax({
   ...
   success: function(data){  
       $(this).append(data.rows);;
   }.bind(this)
   ...
});
Run Code Online (Sandbox Code Playgroud)