在不使用getelementbyid的情况下获取输入值

时间:2014-06-23 09:16:40

标签: javascript

我最近发现下面的javascript代码有效!

function a(){
    alert(myInput.value);
}
<input type="text" value="That`s new to me" id="myInput"/>
<input type="button" onclick="javascript:a();"/>

对我来说,新功能是能够在不使用getElementById函数的情况下访问和使用输入值。

使用这种编码方式是否常见? 这种编码的优点和缺点是什么?

TNX   Amitai

2 个答案:

答案 0 :(得分:-1)

不会称之为非常好的做法。如果我看到请求inputName.Value的内容inputName是您输入的Id,我会自动认为它是在某处声明的对象,开始寻找它,然后才考虑通过DOM检查。

var input = getElementById('myInput')做同样的事情,但可以节省宝贵的时间,而不必查看它是否为变量。

答案 1 :(得分:-1)

具有id的DOM元素会自动添加为window对象的属性,并将id作为变量名称。这就是为什么你可以使用myInput

这是HTML5规范中的一项新功能:

  

HTML5标准指定窗口对象必须具有值为elem的属性键,如果...

     
      
  • 只有一个DOM元素elem,其属性id的值为key。
  •   
  • 只有一个DOM元素elem,其属性名称的值为key   elem的标记必须是以下之一:
      a, applet, area, embed, form, frame, frameset, iframe, img, object
  •   

<强> Source

就个人而言,我建议不要使用它,因为你对这些变量名称“无法”控制。

声明自己的变量,自己“获取”元素,这样你就不必担心x可能是变量了。