这是我的代码
$("#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()
答案 0 :(得分:3)
您需要将引用存储在某处的已点击元素中:
$("#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);
});
});
答案 1 :(得分:1)
有两种常用的方法。
您可以将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));
});