2013-06-02 100 views
0

我一直在摸索着解决这个问题。但几个小时后,仍然没有运气。所以,我创建了一个功能,但是当我运行的代码,它说即时得到一个参考错误,并说该变量的心不是宣布参考错误变量未声明

这里是我的代码:

<html> 

<head> 
<script src = "fileLoading.js"></script> 
<script> 

function initialLoad(boolean vraiFaux){ 
fileLoading("inventory.xml", vraiFaux); //boolean to variable 
} 

//function pageWrite(){ 
// code here 
//} 

</script> 

</head> 

<button type = "button" onClick = "initialLoad(false)"> 
<img src = "panda4.png" alt="Does this work?"></img> 
</button> 

<body id = "body" onload="initialLoad(true)"> 

</body> 

</html> 

这里是我的js文件

var xmlDoc; 

function fileLoading(dname, vraiFaux) 
{ 

if(vraiFaux){ 
if (window.XMLHttpRequest) 
    { 
    xhttp=new XMLHttpRequest(); 
    } 
else 
    { 
    xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xhttp.open("GET",dname,false); 
xhttp.send(); 
xmlDoc = xhttp.responseXML; 
} 


var products = xmlDoc.getElementsByTagName("PRODUCT"); 
var saleItems = new Array(); 
var p = 0; 

for(var i = 0; i<products.length; i++){ 
if((products[i].getAttribute("sale")).equals("yes"){ 
document.getElementById("body").innerHTML+= 
('<img src = ' + products[i].getElementsByTagName("PIC")[0].childNodes[0].nodeValue + '</img>'); // need spacing 

saleItems[p] = i; 
p++; 
if (p == 3) 
break; 
} 

} 
} 




function pageWrite(){ 
document.getElementById("body").innerHTML= 
('<table border = '1'>'); 
var checker = 0; 
for(int externalForLoop = 0; externalForLoop < products.length){ 


if(checker => products.length) 
break; 
document.getElementById("body").innerHTML += 
('<tr>'); 
for (int i = 0; i =< 2; i++){ 
document.getElementById("body").innerHTML += 
('<td><b><img src = ' + products[checker].getElementsByTagName("PIC")[0].childNodes[0].nodeValue + '</img></b></br></td>' + &nbsp); 

} 
document.getElementById("body").innerHTML += 
('</tr></br>'); 
//next for loop goes after here 
for (int n = 0; n =< 2; n++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("NAME")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
for (int c = 0; c =< 2; c++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("CATAGORY")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
for (int o = 0; o =< 2; o++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
for (int d = 0; d =< 2; d++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("DESCRIPTION")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
for (int p = 0; p =< 2; p++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("PRICE")[0].childNodes[0].nodeValue + '</img></b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
for (int s = 0; s =< 2; s++){ 
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("SALE")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp); 
} 
document.getElementById("body").innerHTML += 
('</tr></br>); 
//next for loop goes after here 
checker++; 
if (checker == (products.length - 1)){ 
document.getElementById("body").innerHTML += 
('</table>') 
} 

var products=xmlDoc.getElementsByTagName("PRODUCT"); 

} 
+0

'fileLoading.js'中有什么? – Hristo

+0

另外,为什么您的'

+0

我的猜测是,它无法找到你的'fileLoading.js'文件...你检查过,看看它是否被成功提取? – Hristo

回答

2

我猜这是boolean。尝试删除它。

在Javascript中,您不需要指定变量的类型。因此,它可能读取boolean作为变量名称,但看到没有名为boolean的变量,因此会引发引用错误。

此外,fileLoading.js包含多个语法错误。我建议你看它应该为您产生的错误...

特别是:在线

  • 第26行缺少括号
  • 坏行情右线44
  • 意外int 46(不需要这些!)
  • 线46需要在第3节的for循环
  • 上线49用于=>而不是大概>=
  • 意外int上线53
  • 用于=<代替推测<=上线53
  • &nbsp;是一个HTML实体,而不是一个JavaScript变量;移入55行的字符串
  • 甚至更​​多;我现在要去睡觉,但你应该可以在你的控制台的帮助下找到其他的。

这是我推荐在小块中构建软件并在每个块之间进行测试的原因之一:调试这样的一大块代码是非常痛苦的,如果你觉得这些错误很多都不会存在'早早就抓住了他们的第一个例子。

+0

试过了,但仍然给我同样的错误。错误是现在fileLoding没有被定义。在它初始化之前没有定义 – user2444526

+0

不,它会抛出'SyntaxError:意外的标识符' – Hristo

+0

这不是你不需要的。在JS中这样做是错误的。变量没有类型。对象做。 –