我想要一个对象数组来监视(加载)每个span元素(使用XMLHTTPRequest来检索另一个页面上的URL并放入相关的跨度 - 我没有在下面包含这个功能,因为我只对对象数组感兴趣)。Javascript:使用对象而不是数组通过id检索对象
我喜欢以下(Doug Crockford?) snippet的想法,但我不能得到它的工作。我得到:
URLLoad.LoadingTxt000003.SetLoadTimeout is not a function
任何想法?
这里是我的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript" type="text/javascript">
function URLLoad(id) {
alert(id);
return URLLoad[id] = {
Tagid:id,
LoadTimeout:0
}
}
URLLoad.prototype.SetLoadTimeout = function(lt) {
this.LoadTimeout = lt;
}
URLLoad("LoadingTxt000003");
URLLoad("LoadingTxt000005");
alert(URLLoad.LoadingTxt000003.DelayTimeout + URLLoad.LoadingTxt000005.DelayTimeout);
URLLoad['LoadingTxt000003'].SetLoadTimeout(20); //doesn't work
URLLoad.LoadingTxt000003.SetLoadTimeout(20); //doesn't work
</script>
</head>
<body>
<span id="LoadingTxt000003">...</span>
<span id="LoadingTxt000005">...</span>
</body>
</html>
URLLoad( “LoadingTxt000003”);当我弹出警报时会运行构造函数。 –
构造函数是正常的函数,但'new'运算符将'this'变量绑定到新的上下文中。应始终使用'new'运算符调用构造函数。 – Marcelo
我用新的前缀URLLoad(“LoadingTxt000003”)和URLLoad(“LoadingTxt000005”),仍然会得到相同的错误。 –