你的分享就是我们的动力 ---﹥

怎么在$.ajax()方法的success回调方法中获取当前对象

时间:2014-10-10 16:06来源:www.chengxuyuans.com 点击:
如何在$.ajax()方法的success回调方法中获取当前对象?

$("h4").toggle(function() {
var obj = $(this).siblings("div:gt(0)");//此处$(this)代表的是当前的$("h4")对象
$.ajax({
url : "showAjax.action",
type : "get",
data : "id=" + $(this).prev().val(),
success : function(result) {
// 如果在此处使用$(this)和在外面使用$(this)代表的不是同一个对象
obj.html(result).show();
},
error : function() {
alert("发生错误!");
}
});
}, function() {
var obj = $(this).siblings("div:gt(0)");
obj.hide();
});

请问 1.在success的function中如何直接获取$("h4")这个对象?
         2.在success的function()中使用$(this)是指的哪个对象?
         在此先谢谢各位了 !
------解决思路----------------------
直接取不到,非要在外边缓存一下才能取到。self。
里边的this指向的是那个对象:

{
        url : "showAjax.action",
        type : "get",
        data : "id=" + $(this).prev().val(),
        success : function(result) {
            // 如果在此处使用$(this)和在外面使用$(this)代表的不是同一个对象
            obj.html(result).show();
        },
        error : function() {
            alert("发生错误!");
        }
    }


$("h4").toggle(function() {
    var self = $(this);
    var obj = $(this).siblings("div:gt(0)");//此处$(this)代表的是当前的$("h4")对象
    $.ajax({
        url : "showAjax.action",
        type : "get",
        data : "id=" + $(this).prev().val(),
        success : function(result) {
            // 如果在此处使用$(this)和在外面使用$(this)代表的不是同一个对象
            obj.html(result).show();
        },
        error : function() {
            alert("发生错误!");
        }
    });
}, function() {
    var obj = $(this).siblings("div:gt(0)");
    obj.hide();
});

------解决思路----------------------
既然知道,怎么就绕不过弯子来呢?
你传递给 $.ajax 的不是一个对象吗?在这个对象里 this 不就是对象本身吗?
你 alert(JSON.stringify(this)) 和 alert(JSON.stringify($(this))) 不就观察到了吗
------解决思路----------------------
$.ajax就是一个方法而且,然后将alert的返回值作为$.ajax的参数。。和jquery没关系。。


    function abc(p) {
        alert('调用abc的方法传递的参数P:'+p);
    }


    abc(alert('执行alert后返回值作为abc的参数'))

转载注明地址:http://www.chengxuyuans.com/web_technology/83358.html