<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
,如何解决?
答案 0 :(得分:3)
也许你应该把它放在页面加载上:
<script type="text/javascript">
window.onload = function(){
document.getElementById('widget-generalcode').innerHTML = 'test';
};
</script>
答案 1 :(得分:2)
您应该考虑放置javascript语句的位置。 它会影响预期的结果。 我建议您在Firefox中使用Web开发工具,如Firebug(按F12) 它将帮助您调试javascript代码,您可以使用时间轴功能来检测您的Html / javascript的哪些部分“花费”了大量资源。 希望这些信息有用。
答案 2 :(得分:1)
首先,检查在加载DOM时是否执行了JavaScript。一种选择是将<script>
标记放在</body>
之前。
然后,您应该对表单字段使用value
属性:
document.getElementById("widget-generalcode").value = "test";
答案 3 :(得分:0)
你试图在页面呈现之前访问该元素,这样你就永远不会得到那个元素,所以在下面的函数中编写你的代码
<script>
function call()
{
document.getElementById('widget-generalcode').value = 'test';
}
</script>
现在在body标签palce onload =“call()”中,如下所示,它将起作用
<body onload ="call()" >
</body>
答案 4 :(得分:0)
抱歉,我是新的2 Stackoverflow
在asp.net Actualy Startup是我的id,但在客户端,它将显示为ctl00_dmrcontent_Startup 所以在你的脚本中将id表单widget-generalcode更改为在客户端显示的内容
<div id="Startup" runat="server">
答案 5 :(得分:0)
这让我很悲伤。这是理解“onLoad”的执行顺序(在所有PHP执行并转换为HTML之后发生)以及在解析url参数(在onLoad之前发生)之后运行js命令的问题。
答案 6 :(得分:0)
javascript函数在浏览器呈现的html页面之前运行。所以元素的id =&#34; widget-generalcode&#34;代码运行时不存在。
在javscript文件的顶部使用window.unload = functionName,不带括号()。这告诉浏览器在加载html页面后运行函数。这样,当函数运行并且javascript可以对其起作用时,html元素将存在。