我正在开发一个应用程序,该应用程序迭代一些DOM
元素,并对这些元素中的每一个执行Ajax
请求。问题是我无法访问回调函数中的每个DOM
元素。
$('.class').each(function() {
$.getJSON(url, function(data) {
$(this).attr('id', data.id); // $(this) is not accessible
});
});
有办法解决吗?
最佳答案
您应该使用一个变量,因为每个函数调用的this
的值都会变化,并且$ .getJSON的回调在this
内不再是该元素。
$('.class').each(function() {
var self = this;
$.getJSON(url, function(data) {
self.id = data.id;
});
});
另一个选择是
each()
中的内置参数$('.class').each(function(index, element) {
$.getJSON(url, function(data) {
element.id = data.id;
});
});