我想要一個對象數組來監視(加載)每個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」),仍然會得到相同的錯誤。 –