Javascript 如何获取textarea的旧值

Javascript 如何获取textarea的旧值,javascript,dom-events,textarea,Javascript,Dom Events,Textarea,就这样。如何获取textarea的旧值以便与新值进行比较?。当前值在触发事件(例如,keyup事件)后变为旧值 我见过一些解决方案,例如,使用cookies记录旧值和新值,但是,这种解决方案在我的情况下不起作用,因为我想稍后执行的操作类型 希望有一个比这更好的建议 更新: 在遵循了@drachenstern、@Matthew、@Peter的一些建议之后,我最终得到了这样的结果 var startTimer = null; var oldValue; $("#textarea"

就这样。如何获取textarea的旧值以便与新值进行比较?。当前值在触发事件(例如,keyup事件)后变为旧值

我见过一些解决方案,例如,使用cookies记录旧值和新值,但是,这种解决方案在我的情况下不起作用,因为我想稍后执行的操作类型

希望有一个比这更好的建议

更新

在遵循了@drachenstern、@Matthew、@Peter的一些建议之后,我最终得到了这样的结果

var startTimer = null;
var oldValue;
$("#textarea").keydown($.debounce( 1000, true, function(){
oldValue = $("#textarea").val();
}
));

$("#textarea").keyup(function(){
if(startTimer) clearTimeout(startTimer);
startTimer = setTimeout(function(){
var newValue = $("#textarea").val();
d = // here a clever comparison
oldValue = newValue;
},2000);
})
顺便说一句,
$.debounce
是jquerythrottle/debounce插件的一个函数


这正是我想要的,但是,我想在setTimeout函数和keyup函数之外获得变量
d
,以便在其他地方使用它。然而,clearTimeout在返回值时似乎很棘手。有没有办法获得
d
的值?。

将oldvalue设置为一个数组,并设置带有某种戳记的键,比如arrayOldValue[version\u 1]=initialValue,然后继续将version\u 1增加到version\n,甚至可以支持version-ing@Peter:很好,但是我需要在函数之外使用//比较oldValue和newValue。有没有办法做到这一点?@Kumar:对我来说,试图保持所有的价值观太过分了。不过,谢谢你的建议。@Robert Smith将你需要使用的代码放入函数中并调用该函数。@Peter:嗯,在尝试了你的建议之后,我想我可能没有正确理解它。我将更新问题以显示实际问题。创建一个全局变量(是的,我知道全局变量是邪恶的)并为该变量指定d。@Peter:唯一可用选项?。谢谢你的关注。我肯定这不是唯一的选择,但这是我现在唯一能想到的。
var oldValue = document.getElementById("textareaid").value;

document.getElementById("textareaid").onchange = function(){
  var newValue = this.value;
  //Compare oldValue and newValue
  oldValue = newValue;
}