这是我的代码
$("#idselectB").click(function() {
var id = $("#idselectB option:selected").text();
$.post('elegir.php', {'id': id}, function (data) {
$(this).closest(':input').val(data);
});
});
当我在下拉列表中单击时,会得到选中的值。然后我将值发送给elegir.php,它会返回一个字符串。最后,我想将这个字符串插入到最接近的输入中。
如果我执行alert($(this).closest(':input').val(data));
,这将返回我:[object Object]
?如何将返回值插入到我想要插入的位置?
我有很多输入文本,所以我需要closest()
发布于 2013-04-30 06:39:37
您需要将对单击的元素的引用存储在某个位置:
$("#idselectB").click(function() {
var id = $("#idselectB option:selected").text(),
that = this; // this is a reference to a clicked object
$.post('elegir.php', {'id': id}, function (data) {
$(that).closest(':input').val(data);
});
});
发布于 2013-04-30 06:42:29
有两种常用的方法。
您可以将引用从this
复制到局部变量中,该变量将被捕获在回调函数的闭包中,以便您也可以在那里使用它:
$("#idselectB").click(function() {
var id = $("#idselectB option:selected").text();
var t = this;
$.post('elegir.php', {'id': id}, function (data) {
$(t).closest(':input').val(data);
});
});
您可以使用proxy
method设置回调函数的上下文
$("#idselectB").click(function() {
var id = $("#idselectB option:selected").text();
$.post('elegir.php', {'id': id}, $.proxy(function (data) {
$(this).closest(':input').val(data);
}, this));
});
https://stackoverflow.com/questions/16289385
复制相似问题