我尝试将代码段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);
}
答案 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