javascript中如何获取函数以外另一个函数指向的this???

如以下的代码,
我如何在 ajax() 里面获取 ajax() 外面的那个 ('#add_img2').change() 这个指向的this???
ajax()里面 console.log(this) 这里输出的this 是指向 ajax 的,
我如何让这个 输出的this 是指向 ('#add_img2').change()的呢?

$('#add_img2').change(function(){
console.log(this)

// 选择图片后, ajax 提交到后台
var formdata=new FormData();
var add_img2=this.files[0];
 formdata.append('uploadImage',add_img2);
    var str="1111";
    formdata.append('recid',str);
    var title="标题";
    formdata.append('title',str);
    
    $.ajax({
        url:'/imageText/saveImage.do',
        type:'post',
        contentType:false,
        data:formdata,
       // data:{"title":title,"uploadImage":uploadImage},
        processData:false,
        success:function(info){
            console.log(info);
            // 获取img
            this.siblings(".this_show_img").attr("src",info)
            console.log(this)
        },
        error:function(err){
            console.log(err);
        }
    });

})
图片描述

阅读 2.8k
5 个回答

箭头函数 或者 var that = this;
而且你的this应该 $(this)

ajax外层的函数设置个变量指向this
比如var self = this;
$.ajax内用这个变量就行了

 ('#add_img2').change(function () {
    var self = this // 把这个 this 保存 下来
    ...
    success: function (info) {
        console.log(self) // 获取这个this
    } 
}) 

this的飘逸问题。保存一下例如 _this = this;在外面保存一下就好了

success: info => {console.log(this)}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题