Javascript 文档。表单[0]在Firefox上不起作用

Javascript 文档。表单[0]在Firefox上不起作用,javascript,firefox,html,Javascript,Firefox,Html,这在Firefox中不起作用,但在IE7中起作用。我在Firebug中调试,spanid未定义,但我可以使用document.getElementById(“spanid”)选择此元素。我只是不知道为什么?输入元素工作正常 不应该是document.forms[0](注意表单上的s) **编辑** 由于这个问题的答案并不一致,我的建议如下。简单地说。使用你熟悉的方法,不要浪费时间试图让它发挥作用 function func(){ with (document.forms[0]){

这在Firefox中不起作用,但在IE7中起作用。我在Firebug中调试,
spanid未定义
,但我可以使用
document.getElementById(“spanid”)
选择此元素。我只是不知道为什么?输入元素工作正常

不应该是
document.forms[0]
(注意表单上的s

**编辑**

由于这个问题的答案并不一致,我的建议如下。简单地说。使用你熟悉的方法,不要浪费时间试图让它发挥作用

function func(){
    with (document.forms[0]){
        inputid.value = "text"; //Works!
        spanid.innerHTML = "text"; //Err, spanid is not defined.
    }
}

IE将ID作为属性的所有元素粘贴到全局范围中。Firefox在标准模式下不会这么做(但在怪癖模式下会这么做)。

你在什么时候称它为?它可能没有初始化。我不会,因为我在同一个函数中使用了inputid和spanid。inputid有效,但spanid无效。这甚至不是有效的语法,而且spanid与document.forms[0]有什么关系?我想这就是为什么人们不建议使用()@Desheng使用
的原因。请参见@Quentin Yes,但是
document.forms[0]
不会挂起随机div。只有一些HTML元素在
上以其id/name作为属性结束,并且
不在该集中。
function YourFunction()
{
    var objSpan = document.getElementById([Insert Element ID]);
    var objInput = document.getElementById([Insert Element ID]);

    objSpan.InnerHTML = "text";
    ...
}