jQuery - 重置变量

时间:2013-12-18 22:34:06

标签: jquery variables null undefined reset

我在网页中有一个变量,它被设置为一个值并且是string类型。单击一个按钮时,它会调用一个函数&在函数结束时,我想要清理之前设置的任何内容。我尝试过使用:

$.removeData(myVar);

但它没有做任何事情。之前的日志陈述和&在该声明之后显示它仍具有价值&在&之前键入在上述声明之后。

另一个未使用的变量的值为undefined,类型为undefined。这两个变量恰好都是页面中的全局变量。

如何将myVar重置为初始状态?我知道它应该很简单,但我错过了一些东西。非常感谢任何帮助。

4 个答案:

答案 0 :(得分:15)

嗯......几个可能的直接答案。

myVar = undefined;
myVar = null;
delete window.myVar;

但是,我会质疑变量是全局的逻辑,但只能在某些方法中使用。以下是如何更好地构造(使用从ajax中添加值的随机伪示例):

addAjaxButton.onClick(function() {
  var counter = 0;
  ajax(function(addition) {
    counter += addition;
    ajax(function(moreAdd) {
      counter += moreAdd;
      alert('Total is ' + counter);
    });
  });
});

在这种情况下,不需要删除计数器 - 当所有AJAX都完成时,它将超出范围。

答案 1 :(得分:1)

只需为其指定一个值即可。如果初始状态未定义,请将其设置为null。你不必对jQuery做任何想要杀死它的东西。

答案 2 :(得分:0)

听起来你的功能正在做一些“副作用”的事情而你想撤消这些事情吗?

本声明

  

我想要清理之前设定的任何内容。

与此声明不同

  

如何将myVar重置为初始状态?

您实际想要做的是将其复制到本地范围的变量而不是更改全局变量。此代码演示了如何使用函数参数并在本地制作全局var的副本。

var someGlobal = 1;
someMethod();
someOtherMethod(someGlobal);

function someMethod() {
  var localVar = someGlobal;
  localVar = 2;
}

function someOtherMethod(localVar) {
  localVar = 3;
}

window.console.log(someGlobal);

答案 3 :(得分:-1)

这是重置值的一种方法:

$(myVar).val('');