访问$ .getJSON中的DOM元素

Jav*_*dez 3 javascript jquery dom getjson

我正在开发一个迭代某些DOM元素的应用程序,Ajax并对每个元素执行请求.问题是我无法访问DOM回调函数中的每个元素.

$('.class').each(function() {
    $.getJSON(url, function(data) {
        $(this).attr('id', data.id); // $(this) is not accessible
    });
});
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?

ade*_*neo 6

您应该使用变量,作为this每个函数调用的更改值,并且$ .getJSON的回调内部this不再是元素.

$('.class').each(function() { 

    var self = this;

    $.getJSON(url, function(data) {
        self.id = data.id;
    });
});
Run Code Online (Sandbox Code Playgroud)

另一种选择是内置的参数 each()

$('.class').each(function(index, element) { 
    $.getJSON(url, function(data) {
        element.id = data.id;
    });
});
Run Code Online (Sandbox Code Playgroud)