我最近发现下面的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
答案 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
,其属性名称的值为keyelem
的标记必须是以下之一:
a, applet, area, embed, form, frame, frameset, iframe, img, object
。
<强> Source 强>
就个人而言,我建议不要使用它,因为你对这些变量名称“无法”控制。
声明自己的变量,自己“获取”元素,这样你就不必担心x
可能是变量了。