JavaScript getElementById()。value不起作用

时间:2010-06-05 16:06:19

标签: javascript

代码有什么问题吗?它不起作用。

<script>
t=document.getElementById('good');
document.write(t.value);
</script>

HTML:

Type-here: <input id='good' type='text' value="my value is high">

5 个答案:

答案 0 :(得分:7)

您的脚本位于文档的顶部,并且在您的输入标记存在于DOM之前运行。

一旦浏览器看到</script>结束标记,脚本就会立即执行。您可以将脚本块放在<body>的末尾,也可以将代码作为“onload”处理程序运行。

答案 1 :(得分:1)

试试这个:

<script>
function reWriteThis(id) {
 var t=document.getElementById(id);
 document.write(t.value);
}
</script>

之后,在你的加载标签中,例如:

<body onload="reWriteThis('good')">

答案 2 :(得分:0)

等等,在先前的问题中你是just complaining,getElementsByTagName不起作用。在这两种情况下,都是你试图使用不起作用的方式。

我和其他人在那里给了你评论和答案,它们将启发你关于getElementById和getElementsByTagName。

答案 3 :(得分:0)

我重写了如下代码。但随后<input>标签消失了。为什么呢?

<script>
function write()
{
  t=document.getElementById('good');
  document.write(t.value);
}
</script>

HTML:

<body onload="write()">
Type here: <input id='good' type='text' value="my value is high" >
</body>

答案 4 :(得分:0)

document.write将刷新当前文档内容。

如果您想将此新内容附加到当前内容,您必须执行以下操作:

  1. 创建一个新元素,例如span或div,
  2. 创建一个textNode,其值为insert ...
  3. 使用此函数将新内容附加到该元素:document.getElementById('theDiv')。appendChild(newContent);
  4. 例如,这对您有用:

    <script>
    function write()
    {
        var t=document.getElementById('good');
        if (document.createTextNode){
            var mytext=document.createTextNode(t.value)
            document.getElementById("newDiv").appendChild(mytext)
        } 
    }
    
    </script>
    

    在这里你可以看到newDiv

    <body onload="write()">
    Type here: <input id='good' type='text' value="my value is high" >
    <div id="newDiv"></div>
    </body>