有一个Jquery选择器可以工作,但不能在$.post中工作
我有一个Jquery行,它可以找到我想要输入数据的单元格,当我在$.post函数(下面)之外使用它时,它就起作用了,但在$.post函数内却不起作用有一个Jquery选择器可以工作,但不能在$.post中工作,jquery,post,Jquery,Post,我有一个Jquery行,它可以找到我想要输入数据的单元格,当我在$.post函数(下面)之外使用它时,它就起作用了,但在$.post函数内却不起作用 $(this).parent().parent().find(".total_item_price").html("new text"); 但当我在下面的示例中使用上面的行时,它不起作用。它不会更新必填字段中的文本 $.post(url, { "params": value}, function(data) { // Thi
$(this).parent().parent().find(".total_item_price").html("new text");
但当我在下面的示例中使用上面的行时,它不起作用。它不会更新必填字段中的文本
$.post(url, { "params": value}, function(data) {
// This is where I am having a problem
// also tried .text and .val
$(this).parent().parent().find(".total_item_price").html(data.total_price_item);
alert(data.total_price_item); // This outputs my data
}, "JSON");
我基本上希望将返回的(数据)放入表的单元格中。我不认为我的表结构是个问题,但如果需要,我可以发布它
我应该补充一点,我必须找到父函数和字段,因为每个post函数将输出到不同的单元格中,因此它与用户单击的位置有关
此代码出了什么问题?因为加载回调内部的
此不等于加载回调外部的此。它们有不同的范围
在调用post之前,将另一个作用域中的this
缓存到一个变量中:
var scope = this;
然后在回调中,您可以将另一个此
引用为范围
:
$(scope).parent().parent().find(".total_item_price").html(data.total_price_item);
在$.post
中,此
将不会指向您正在思考的相同元素。请使用实际的选择器使其工作。因为函数中的“this”是对函数的引用,而不是对节点的引用 ($this)
不是你想象的那样此
始终是正在执行的函数的所有者,该函数位于$中。post
是回调函数 你可以这样做
var a= $(this);
$.post(url, { "params": value}, function(data) {
// This is where I am having a problem
// also tried .text and .val
a.parent().parent().find(".total_item_price").html(data.total_price_item);
alert(data.total_price_item); // This outputs my data
}, "JSON");
$(此)
在那里不起作用。因为它在回调函数的作用域中,而不是单击事件
将$(this)
分配给post外部(单击事件处理程序内部)的变量,然后在post回调中使用该变量
var that = $(this);
$.post(url, { "params": value}, function(data) {
that.parent().parent().find(".total_item_price").html(data.total_price_item);
alert(data.total_price_item); // This outputs my data
}, "JSON");