Javascript 获取getElementById未定义

Javascript 获取getElementById未定义,javascript,html,Javascript,Html,这是我的密码: <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();

这是我的密码:

<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>

体检日期
函数datechange(){
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=newXMLHttpRequest();}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject
(“Microsoft.XMLHTTP”);
}
var tr=getElementsById(名称更新)
var tds=tr.getElementsByTagName('td');
var user=“”;
var日期=”;
对于(变量i=0,len=tds.length;i您需要使用
文档。getElementById(“yourelementid”)
您需要使用
文档。getElementById(“yourelementid”)
getElementById
文档的一个函数:

var tr = document.getElementById("nameUpdate")

MDN

getElementById
文档的一个函数:

var tr = document.getElementById("nameUpdate")

MDN

它是
document.getElementById()
,而不是
getElementsById()
,因为它只返回一个元素


后者不是很有用,因为HTML文档中的
id
属性必须是唯一的。

它是
document.getElementById()
,而不是
getElementsById()
,因为它只返回一个元素


后者不是很有用,因为HTML文档中的
id
属性必须是唯一的。

问题1:您正在调用
getElementsById
。ID是唯一的:函数是
getElementById
。无
s

问题2:
getElementById
不是全局函数。您需要在文档对象上调用它:

var tr = document.getElementById(nameUpdate)

毕竟,您的脚本可以引用多个文档(例如,使用
iframe
),因此您需要明确说明元素的位置。

问题1:您正在调用
getElementsById
。ID是唯一的:函数是
getElementById
。无
s

问题2:
getElementById
不是全局函数。您需要在文档对象上调用它:

var tr = document.getElementById(nameUpdate)
毕竟,您的脚本可以引用多个文档(例如,使用
iframe
),因此您需要明确说明元素的位置。

还可以尝试更改:

<input type="checkbox" onclick="var nameUpdate = 'TL-D03'; datechange();">
对此

function datechange(nameUpdate) {
更有意义

还可以尝试更改:

<input type="checkbox" onclick="var nameUpdate = 'TL-D03'; datechange();">
对此

function datechange(nameUpdate) {

更重要的是,它不起作用的原因是,
var
将变量的作用域限定在它定义的函数中,因此在分配给onclick处理程序的匿名函数之外,它是不可读的

在更一般的“错误”术语中,传递有关使用全局变量的数据通常是一个坏主意

将其作为参数传递

function datechange(nameUpdate) {


它不起作用的原因是
var
将变量的作用域限定在它所定义的函数中,因此在分配给onclick处理程序的匿名函数之外,它是不可读的

在更一般的“错误”术语中,传递有关使用全局变量的数据通常是一个坏主意

将其作为参数传递

function datechange(nameUpdate) {


这是可行的,但现在它说nameUpdate没有定义!哎呀
nameUpdate
应该用引号括起来-它是一个字符串,不是一个变量。这是有效的,但现在它说nameUpdate没有定义!哎呀
nameUpdate
应该用引号括起来-它是一个字符串,而不是一个变量。Hrm,现在它告诉我tr为null。Hrm,现在它告诉我tr为null。为什么要执行
var nameUpdate='TL-D03';datechange()?将其作为参数传递给函数!为什么要执行
var nameUpdate='TL-D03';datechange()?将其作为参数传递给函数!