jQuery成功:函数{}问题

jQuery成功:函数{}问题,jquery,ajax,select,Jquery,Ajax,Select,我在页面上有几个“选择”元素。当我选择一些选项时,ajax请求被发送到服务器,与这个“select”相邻的元素必须用response值更新。我希望以下代码能够正常工作: $(".vars").live("change", function() { //selected something in <select> list $.ajax({ type: "POST", url "someurl.php", data: {somed

我在页面上有几个“选择”元素。当我选择一些选项时,ajax请求被发送到服务器,与这个“select”相邻的元素必须用response值更新。我希望以下代码能够正常工作:

$(".vars").live("change", function() { //selected something in <select> list
    $.ajax({
        type: "POST",
        url "someurl.php",
        data: {somedata},
        success: function(html) {
            $this.next().html(html); //this does not update .next() element.
        }
    });
});

我可以看到ajax请求成功了。此外,只有当页面上只有一个“选择”时,它才起作用,否则会出现空的弹出窗口。

$(“.vars”).live(“change”,function(){//在列表中选择了一些内容
$(".vars").live("change", function() { //selected something in <select> list
    var $this = $(this);
    $.ajax({
        type: "POST",
        url "someurl.php",
        data: {somedata},
        success: function(html) {
            $this.next().html(html); //this does not update .next() element.
        }
    });
});
var$this=$(this); $.ajax({ 类型:“POST”, url“someurl.php”, 数据:{somedata}, 成功:函数(html){ $this.next().html(html);//这不会更新.next()元素。 } }); });
我相信“this”不是您在回调中引用时所认为的。试试这个:

$(".vars").live("change", function() { //selected something in <select> list 
    var $driver = $(this);
    $.ajax({ 
        type: "POST", 
        url "someurl.php", 
        data: {somedata}, 
        success: function(html) { 
            $driver.next().html(html); //this does not update .next() element. 
        } 
    }); 
}); 
$(“.vars”).live(“更改”,function(){//在列表中选择了一些内容
变量$driver=$(此);
$.ajax({
类型:“POST”,
url“someurl.php”,
数据:{somedata},
成功:函数(html){
$driver.next().html(html);//这不会更新.next()元素。
} 
}); 
}); 

谢谢大家,但是如果有几个“select”元素,“html”响应结果是空的。无论如何,现在我们离解决方案更近了,因为终于触发了正确的元素。但它看起来像服务器端代码中的某个错误,所以这个问题必须标记为“已回答”。对于下面的评论,要获取/设置选择框的所选选项,请使用.val()而不是.html()。希望有帮助
$(".vars").live("change", function() { //selected something in <select> list
    var $this = $(this);
    $.ajax({
        type: "POST",
        url "someurl.php",
        data: {somedata},
        success: function(html) {
            $this.next().html(html); //this does not update .next() element.
        }
    });
});
$(".vars").live("change", function() { //selected something in <select> list 
    var $driver = $(this);
    $.ajax({ 
        type: "POST", 
        url "someurl.php", 
        data: {somedata}, 
        success: function(html) { 
            $driver.next().html(html); //this does not update .next() element. 
        } 
    }); 
});