如何优化此Javascript?

时间:2011-07-26 23:34:11

标签: javascript optimization

我尝试将代码段1转换为代码段2,但这不起作用(文本字段不清除)。 f3aa和f3bb是我在汇总后需要清除的文本字段。

Snippet 1

var target=document.getElementById('f3aa');
target.value='';
var target=document.getElementById('f3bb');
target.value='';

Snippet 2

o1('f3aa')=o1('f3bb')='';

摘录3

function  o1(a)
  {
  document.getElementById(a);
  }

4 个答案:

答案 0 :(得分:4)

假设我已正确理解你的问题,那你几乎就在那里:

document.getElementById('f3aa').value = '';
document.getElementById('f3bb').value = '';

在您的代码段2中,您尝试将空字符串分配给DOM元素,而不是该元素的value属性。

在代码段1中,您将DOM元素分配给target变量,然后将空字符串分配给value变量的target属性。由于target包含DOM元素,因此将该字符串分配给该元素的value属性,这相当于我上面显示的代码。

答案 1 :(得分:3)

您忘记在第二个代码段中包含第一个代码段中的属性名称:

document.getElementById('f3aa').value='';
document.getElementById('f3bb').value='';

(请注意,这实际上不是“优化” - 两个片段的运行速度没有明显差异。请使用哪个更具可读性。)

答案 2 :(得分:1)

X('f3aa').value = X('f3bb').value = '';

其中X是您的ID查询实现。

现场演示: http://jsfiddle.net/zmr29/

(我在我的演示中编写了一个X函数,但我假设你要么使用库,要么使用其他简写来进行DOM查询。)

答案 3 :(得分:0)

我认为使用var在同一范围内多次声明变量是违法的。

这段代码很糟糕:

var test = true;
var test = false;

这段代码很好:

var test = true;
    test = false; // <-- no "var" keyword here