例如,假设我将变量定义为等同于键入textarea的某些文本,然后将textarea中的文本更改为新值。我希望能够保留最初存储在变量中的旧值,并将其与存储的新值进行比较。我想也许我可以用两个变量做到这一点。我想用代码做的是找出我最初输入的值是否与我输入的新值相同。这是一次尝试。我不希望下面的代码完全可以工作。这只是为了让我知道自己想做什么。
<textarea id="mytext"></textarea>
<input onclick="MyFunction();" type="submit" value="submit"/>
function MyFunction(){
var MyVariable = document.getElementById("mytext").value();
var MyVariable2 = document.getElementById("mytext").value();
if(MyVariable === MyVariable2){
alert('the text is the same');
}
else
{
alert('the text is different');
}
}
答案 0 :(得分:2)
如何使变量保留旧信息?
不向其分配新信息。
只需在函数外部创建一个变量,以便它在函数调用之间保持不变,并且只有在它没有值时才分配给它:
var previousValue = null;
function MyFunction(){
var currentValue = document.getElementById("mytext").value;
if (previousValue === currentValue){
alert('the text is the same');
}
else
{
alert('the text is different');
}
if (previousValue == null) {
// only executed the first time the function is called
previousValue = currentValue;
}
}
我需要带有旧信息的变量落后于第二个变量,并且在给出新信息之前,第二个变量具有信息。
然后,您只需将新值分配给变量:
var previousValue = null;
function MyFunction(){
var currentValue = document.getElementById("mytext").value;
if(previousValue === currentValue){
alert('the text is the same');
}
else
{
alert('the text is different');
}
previousValue = currentValue;
}
答案 1 :(得分:0)
以下是两种让人想起的方法:
无论你做什么,只要避免将旧值存储在全局变量中,因为这会污染你的全局命名空间,这绝不是一件好事。
答案 2 :(得分:0)
您可以使用HTML5数据属性:
var textArea = document.getElementById("myText");
textArea.setAttribute("data-old", textArea.value());
并使用以下方法检索它:
document.getElementById.getAttribute("data-old");
答案 3 :(得分:0)
你只需要将旧的变量数据分配给新的变量,这就是小提琴:
尝试此代码:var MyVariable2 = null;
function MyFunction(){
var MyVariable = $("#mytext").val();
if (MyVariable2 == null) {
MyVariable2 = MyVariable;
}
if(MyVariable === MyVariable2){
alert('the text is the same');
}
else
{
alert('the text is different');
}
}
这里是小提琴:http://jsfiddle.net/2eFD2/6/
答案 4 :(得分:0)
我已经做了类似的事情,我正在使用旧值来检查表单是否得到更新,并且在提交时我正在删除未更改的输入
HTML:
<form id="myform">
<input type="text" id="Name" data-initial="Foo" value="Foo" />
<input type="text" id="Location" data-initial="Bar" value="Bar" />
<input type="submit" value="Submit" />
</form>
JS:
$("#myform").submit( function() {
$(this).find("input").filter( function() {
$this = $(this);
return $this.data("initial") == $this.val();
}).remove();
});
答案 5 :(得分:-1)
您可以使用HTML5 data
属性或localStorage
来保存该值。
数据属性:
var myText = document.getElementById("myText");
myText.setAttribute("data-old", myText.value); //Set
myText.getAttribute("data-old"); //Get
localStorage的:
localStorage.setItem("myText", document.getElementById("myText").value); //Set
localStorage.getItem("myText"); //Get