我想要输入的显示值" name"在我的表数据中。
<table id="mytable">
<tbody>
<tr>
<td><input id="id" class="id">1</input></td>
<td><input id="name" class="name"></input></td>
<tr>
<tbody>
<tbody>
<tr>
<td><input id="id" class="id">2</input></td>
<td><input id="name" class="name"></input></td>
<tr>
<tbody>
</table>
我使用此代码获取值,但我不知道如何显示它。
$('#mytable tbody').each(function() {
var id = $(this).find(".id").val(); //obtain Id value
$.ajax({
url:"search_name.php", //search in database name with this id
type:"POST",
data:id,
dataType:"json",
success:
function(return)
{
$(this).find(".name").val(return.name);
}
})
});
})
return.name
的值是好的,它是我要显示的名称,但不是
出现在带有类名的输入中。
答案 0 :(得分:0)
主要问题是this
在ajax回调中有不同的上下文,而不是您期望从each
循环中获得的元素实例
有几种方法可以解决this
的范围问题。
最不常用的方法是context
$.ajax
选项
$('#mytable tbody').each(function () {
$.ajax({
/* other options left out for brevity*/
context: this, // per docs "object will be made the context of all Ajax-related callbacks"
success: function (return) {
/* "this" is now the tbody instance*/
$(this).find(".name").val(return.name);
}
});
});
更常见的方法是在调用$.ajax
$('#mytable tbody').each(function () {
var $tbody = $(this); // store instance in variable
$.ajax({
/* other options */
success: function (return) {
$tbody.find(".name").val(return.name);
}
});
});
关于范围
,第二种方法可能更容易阅读