Javascript 选择$.ajax Jquery的父项?

Javascript 选择$.ajax Jquery的父项?,javascript,jquery,ajax,jquery-ui,jquery-selectors,Javascript,Jquery,Ajax,Jquery Ui,Jquery Selectors,如何选择$.ajax的父元素,或触发$.ajax的元素的父元素。我需要某种参考,以便将结果数据应用于它: var a = $a.val(); var b = $b.val(); $.ajax({ type: "POST", url: "/Controller/Action", data: { a: a, b: b }, success: function (data) { var values = data.values,

如何选择$.ajax的父元素,或触发$.ajax的元素的父元素。我需要某种参考,以便将结果数据应用于它:

var a = $a.val();
var b = $b.val();

 $.ajax({
      type: "POST",
      url: "/Controller/Action",
      data: { a: a, b: b },
      success: function (data) {

          var values = data.values,
              $elements = $();
              for (i = 0; i < 142; i++) {
                  $elements = $elements.add($("<div class='single'>").css('height', values[i]).css('margin-top', 26 - valuesG[i]));
              }
                //Here it should reference $(this).parent().parent().. something
               //and not :last, because there are many .second elems... 
              //not only :last is being changed?

              $elements.appendTo($(".second:last"));
              $(".second:last").children(".single").addClass("ui-selected");
      },
      traditional: true
});   
ajax成功函数中的$this.parent返回jQuery
有什么想法吗?

使用上下文选项:

$.ajax({
    url: "test.html",
    context: document.body,
    success: function(){
      $(this).addClass("done");
   }
});

使用上下文选项:

$.ajax({
    url: "test.html",
    context: document.body,
    success: function(){
      $(this).addClass("done");
   }
});
因为默认情况下,ajax调用是异步的,所以当您在内部执行$this时,会成功地将此引用添加到ajax api,并将$this.parent引用添加到jQuery

为了避免这种情况,在ajax调用开始在成功内部使用之前,将元素引用保存在变量中

因为默认情况下,ajax调用是异步的,所以当您在内部执行$this时,会成功地将此引用添加到ajax api,并将$this.parent引用添加到jQuery

为了避免这种情况,在ajax调用开始在成功内部使用之前,将元素引用保存在变量中


将对ajax的调用放在函数中,并将元素参数传递给函数

function doAjax(triggerElement)
{
   $.ajax({
      url: whatever,
      context: triggerElement,
      success : function (content) { $(this).html(content);  }
   });
}

$(function () {

   $('#triggerElementId').click(function () { doAjax(this); });

});

将对ajax的调用放在函数中,并将元素参数传递给函数

function doAjax(triggerElement)
{
   $.ajax({
      url: whatever,
      context: triggerElement,
      success : function (content) { $(this).html(content);  }
   });
}

$(function () {

   $('#triggerElementId').click(function () { doAjax(this); });

});

上下文:这个,应该做!谢谢上下文:这个,应该做!谢谢