2
<textarea name="widget-generalcode" cols="50" rows="13" id="widget-generalcode"></textarea>

和 javascript

<script>
document.getElementById('widget-generalcode').innnerHTML = 'test';
</script>

当我运行代码时,错误TypeError: document.getElementById(...) is null,如何修复它?

4

7 回答 7

3

也许你应该把它放在页面加载中:

<script type="text/javascript">
    window.onload = function(){
        document.getElementById('widget-generalcode').innerHTML = 'test';
    };
</script>
于 2012-12-26T10:14:42.473 回答
2

您应该考虑放置 javascript 语句的位置。它将达到预期的效果。我建议您应该在 Firefox 中使用 Firebug 等 Web 开发工具(按 F12),它将帮助您调试 javascript 代码,并且您可以使用 Timeline 功能来检测 Html/javascript 的哪些部分“花费”了大量资源。希望这些信息有用。

于 2012-12-26T10:11:41.407 回答
1

首先,检查您的 JavaScript 是否在 DOM 加载时执行。一种选择是将<script>标签放在</body>.

然后,您应该value为表单字段使用属性:

document.getElementById("widget-generalcode").value = "test";
于 2012-12-26T10:05:03.870 回答
0

This caused me much grief. It's a matter of understanding the sequence of execution of the "onLoad" (which occurs after all the PHP has been executed and turned into HTML), and the running of a js command after say parsing the url parameters (which occurs before onLoad).

于 2014-10-17T13:10:13.363 回答
0

对不起,我是新来的 2 Stackoverflow

在 asp.net 实际上 Startup 是我的 id 但在客户端它将显示为 ctl00_dmrcontent_Startup 所以在你的脚本中将 id 形式更改为 widget-generalcode 到客户端显示的内容

<div  id="Startup" runat="server">
于 2014-09-30T07:52:31.323 回答
0

您正在尝试在页面上呈现元素之前访问该元素,因此您将永远不会获得该元素,因此请在函数中编写代码,如下所示

<script>
  function call()
  {
    document.getElementById('widget-generalcode').value = 'test';
  } 
</script>

现在在下面给出的body标签palce onload =“call()”中它将起作用

<body onload ="call()" >

</body>
于 2012-12-26T10:14:02.070 回答
0

javascript函数在浏览器呈现的html页面之前运行。因此,在代码运行时,id="widget-generalcode" 的元素并不存在。

在 javscript 文件的顶部使用 window.unload=functionName,不带括号 ()。这告诉浏览器在 html 页面加载后运行该函数。这样,当函数运行并且 javascript 可以对其进行操作时,html 元素将存在。

于 2014-11-25T17:50:24.913 回答