getElementById无法正常工作

Arz*_*h15 4 javascript getelementbyid

这是我的代码 - http://jsfiddle.net/EC6jT/

<input type="text" id="mytext">
<a href='javascript:elem();'>click</a><br/>  

<input type="text" id="mytext2">
<a href='javascript:document.getElementById("mytext2").value = "My default value";'>click</a><br/>

<script type="text/javascript">
function elem() {
  document.getElementById("mytext").value = "My default value";
};
</script>
Run Code Online (Sandbox Code Playgroud)

为什么第一个"点击"链接正常工作而第二个链接不正常?为什么第二个"点击"链接会删除所有内容?

谢谢.

Sur*_*lai 5

而不是这个

<a href='javascript:document.getElementById("mytext2").value = "My default value"; '>click</a><br/> 
Run Code Online (Sandbox Code Playgroud)

像这样使用

<a href='javascript:document.getElementById("mytext2").value = "My default value"; return false;'>click</a><br/> 
Run Code Online (Sandbox Code Playgroud)

来自@Jonathan Lonowski的精彩解释

为了解释需要return false或相似,javascript:...将显示结果,如果它是真实的 - 例如href="javascript:"foo".默认elem()返回undefined,这是假的.但是,赋值运算符(=)返回分配的值.另一种选择是在声明前加上void操作员,以丢弃任何可能的结果 - href="javascript:void document....". -

  • 应该解释差异或至少强调它.代码丢弃不是最好的答案. (4认同)
  • 如果答案有代码和解释,答案总是更好. (4认同)