表单元素上的id属性导致全局变量

时间:2012-12-03 13:30:27

标签: javascript html

  

可能重复:
  IE/Chrome: are DOM tree elements global variables here?

说明

您好我刚刚注意到,当我在表单上使用id时,它可用作全局变量 在这之后。我在Mac上测试了Firefox 17.0和Google Chrome 23.0。当我看到这个时,我有点意外!

HTML码:

<form class="input-form" id="test">
      <label for="key">Key</label>
      <input type="text" name="key">
</form>

问题:

这是否意味着在使用id或者我完全错误时使用id实际上是一个非常糟糕的主意?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果你的意思是它在浏览器控制台中可用,那就好了。这只是浏览器试图减轻写作document.getElementById('test')的痛苦的一种方式。至少就是Chrome的情况。如果您打开Chrome控制台(例如在此页面上)并输入“侧边栏”并按Enter键,您会看到它返回ID为“sidebar”的div。

直接回答您的问题:在表单(或任何其他节点)上使用id是完全正常的。

答案 1 :(得分:0)

如果您的表格是身体中的直接孩子,那么这是正常的。例如:

<body>
<form id="myForm" >
    <input type="file"/>
    <div>
        <form id="myForm2" >
            <input type="text" />
        </form>
    </div>
</form>
</body>

myForm将作为全局变量提供。但myForm2将无法使用。