在这个特定的代码片段中引用的jQuery $(this)是什么?

时间:2010-12-07 16:44:06

标签: jquery

$(document).ready(function() {
            $(".po").click(function(){
                var po = $(this).text();
                var dataString = 'po='+ po;

                $.ajax
                    ({
                    type: "GET",
                    url: "projectitems.php",
                    data: dataString,
                    cache: false,
                    success: function(html)
                        {


$(this).closest(".resultsItems").html(html);
                        }
                    });
            });         
        });

$(this).closest(".resultsItems").html(html);究竟是什么(this)指的是什么?我试图将返回的ajax结果附加到名为.resultsItems的<td>,但仅添加到初始点击选择器下方的那个?这可能吗?

为了说清楚我不是在问这个(这个)在jQuery中意味着什么,我在问我上面的代码中指的是什么(这个)!

3 个答案:

答案 0 :(得分:9)

this指的是$.ajax()设置对象。要获得您想要的内容,您需要使用this选项维护context,如下所示:

$.ajax({
  context: this,
  type: "GET",
  url: "projectitems.php",
  data: dataString,
  cache: false,
  success: function(html) {
    $(this).closest(".resultsItems").html(html);
  }
});

答案 1 :(得分:3)

来自jQuery网站:

  

所有这些的this对象都会   是context属性中的对象   传递给设置中的$.ajax;如果   没有指定它将是一个   参考Ajax设置   他们自己。

答案 2 :(得分:0)

您可以详细了解this关键字here

基本上,在你的情况下,它引用了window对象,因为它是在ajax调用上触发success事件的窗口对象。 但是,您可以通过执行以下操作来捕获ajax调用上方$(".po")的范围:

var that = this;

然后,如果您使用that.closest()...来引用$(".po")对象