当前位置: 首页 > 面试题库 >

Ajax jQuery成功范围

孔君浩
2023-03-14
问题内容

我有这个Ajax呼叫doop.php

    function doop(){
        var old = $(this).siblings('.old').html();
        var new = $(this).siblings('.new').val();

        $.ajax({
            url: 'doop.php',
            type: 'POST',
            data: 'before=' + old + '&after=' + new,
            success: function(resp) {
                if(resp == 1) {
                    $(this).siblings('.old').html(new);
                }
            }
        });

        return false;
    }

我的问题是,$(this).siblings('.old').html(new);生产线没有按预期进行。

谢谢..所有有用的评论/答案都被投票了。

更新: 问题的一半似乎是范围(感谢帮助我阐明这一问题的答案),但另一半是我试图以同步方式使用ajax。我创建了一个新帖子


问题答案:

首先new是一个保留字。您需要重命名该变量。

要回答您的问题,是的,您需要保存this在成功回调之外的变量中,并在成功处理程序代码中引用它:

var that = this;
$.ajax({
    // ...
    success: function(resp) {
        if(resp == 1) {
            $(that).siblings('.old').html($new);
        }
    }
})

这称为关闭。



 类似资料:
  • 问题内容: 我正在尝试创建一个在ajax成功回调之前被调用的全局处理程序。我对我的应用程序进行了许多ajax调用,如果发生错误,我将返回特定的结构,因此在成功运行之前,需要运行一些内容以检查响应数据以查看其是否包含错误代码位(例如1 / 0 样品回复 要么 我找不到开箱即用的方法来执行此操作,查看了预过滤器,ajaxSetup和其他可用方法,但它们并没有完全实现,我可以想到的选择是破解ajax方法

  • 问题内容: 我正在使用Ajax发布将表单数据提交到服务器,进行验证,然后根据数据是否有效并可以存储返回一条消息。我的ajax帖子中的成功功能没有运行。这是ajax帖子和成功消息的显示: 标签上没有显示任何消息。我尝试在代码中将successmessage变量设置为一个设置值,并且显示效果很好,所以成功函数一定存在问题,我看不到什么?我也尝试设置错误回调,如下所示: 但是仍然没有消息显示。 问题答案

  • This is a sample functional specification, a part of Joel on Software, a site about software management. It is intended for educational purposes, not to refer to a real product, in case you didn't not

  • 我想问一个关于JAXB将如何维护与生成的类相关联的值的一般性问题。我可以生成这个类,只要它在有效负载中就可以使用它,但是当我转到另一个spring集成过程时,对象似乎不会保留这些值。我知道必须有一种简单的方法来确保生成的对象保留其填充的内容。我可以重新实例化这个类,但这只是一个新的空类。 这是我想完成的事情 要生成的基本XML文档 这将产生 不过我选择得到这个xml可以使用然后我散集它 然后我在流

  • 我有一个关于ReactJS和组件的问题,特别是关于函数如何在组件系统中交互。 在这个例子中: ComponentA导入pp.js,并尝试将App.functionA分配给函数B,然后在JSX中调用它。这会导致失败,基本上就是说函数没有定义。 我知道这不是功能共享的方式(我已经学习了如何通过道具等传递功能)。 我只是想知道为什么这不起作用,以帮助我更好地理解React和Javascript的机制。

  • 问题内容: 我正在使用jQuery的功能来提交可以正常工作的表单,但是成功是我遇到问题的地方。这是我的代码: 我遇到的问题是该函数不断说dataCheck不等于 value 。我知道是的,因为删除页面时按预期显示了 value 。另外,我之前使用了几乎相同的代码,这可以正常工作。有人可以给我一些建议吗? 问题答案: 如何自己找到答案: 放置调试代码以查看从服务器获得的信息。 它可能采用您认为不是的