获取 getElementById 未定义
2011-11-10
15115
这是我的代码:
<html>
<header>
<title>Checkup Date</title>
<script type="text/javascript">
function datechange() {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest(); }
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject
("Microsoft.XMLHTTP");
}
var tr = getElementsById(nameUpdate)
var tds = tr.getElementsByTagName('td');
var user = "";
var date = "";
for(var i = 0, len = tds.length; i < len; ++i) {
user = tds[0];
date = tds[3];
}
var url = "changedate.psp"
var params = "user=" + user + "&date=" + date;
xmlhttp.open("GET", url + "?" + params, true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
}
</script>
</header>
<body>
<%
Python that doesn't matter
%>
<%= More Python %>
</body>
</html>
我输出的 HTML:
<tr id="TL-D03">
<td>nobody</td>
<td>TL-D03</td>
<td>2010-01-01</td>
<td>
<input type="checkbox" onclick="var nameUpdate = 'TL-D03'; datechange();">
我在这里做错了什么?它说 getElementById 未定义。
3个回答
getElementById
是
document
的一个函数:
var tr = document.getElementById("nameUpdate")
MDN : https://developer.mozilla.org/en/DOM/document.getElementById
James Hill
2011-11-10
问题 1:您正在调用
getElementsById
。ID 是唯一的:函数是
getElementById
。没有
s
。
问题 2:
getElementById
不是全局函数。您需要在文档对象上调用它:
var tr = document.getElementById(nameUpdate)
毕竟,您的脚本可以引用多个文档(例如,使用
iframe
),因此您需要明确说明您期望元素的位置。
lonesomeday
2011-11-10
还请尝试将:
<input type="checkbox" onclick="var nameUpdate = 'TL-D03'; datechange();">
更改为:
<input type="checkbox" onclick="datechange('TL-D03')">
并将
function datechange() {
更改为
function datechange(nameUpdate) {
更有意义
Dimitri
2011-11-10