我希望此函数在完成ajax $ .post调用时更新div中的文本。一切正常,但在.done调用中,$(this)不再查看它所列出的元素。
任何帮助都将不胜感激。
//Add or Remove time from Time Off
$(".timeChange").on("click", function(){
var id = $(this).val();
var timeCommand = $(this).attr("data-command");
var currentTime = $(this).siblings('.timeHold').text();
$.post("humanResourceFunctions.php/",
{
command : "modifyLeaveTime",
employee : id,
addSubtract : timeCommand,
time : currentTime
}).done(function(data) {
$(this).siblings('.timeHold').text(data);
});
});
问题在于上一次操作,$(this).siblings(' .timeHold')。text(data);
答案 0 :(得分:3)
您只需要缓存对它的引用。
$(".timeChange").on("click", function(){
var $this = $(this); //cache it
然后在......
.done(function(data) {
$this.siblings('.timeHold').text(data); //note $this not $(this);
});