我定义了函数'myFunction(a,b)',并尝试使用它来转换xml文件中的值以创建新变量'b ',然后写在桌子上。但是,无论是myFunction还是document.write(b [i])都不起作用。任何想法我做错了什么?我想显示变量'b [i]'而不是'x [i] .childNodes [0] .nodeValue'。但'myFunction'或document.write(b [i])似乎不起作用
<script type="text/javascript">
//<![CDATA[
<!-- Request DATA -->
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/xml/352438?res=3hourly&key=[value],false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
<!-- Write Table header -->
var tableHeaders = ["Time", "Temp"];
document.write("<table><tr>");
for (i=0; i<tableHeaders.length;i++)
{
document.write("<th>");
document.write(tableHeaders[i].bold() + "   ");
document.write("<\/th>");
;
}document.write("<\/tr>");
<!-- Write DATA -->
var x=xmlDoc.getElementsByTagName("Rep");
for (i=0;i<2;i++)
{
var b[i] = myFunction(x[i].childNodes[0].nodeValue, 0.001); //<--- NOT WORKING
document.write("<tr><td>" +b[i] + "<\/td>"); //<---NOT WORKING
//document.write("<tr><td>" +x[i].childNodes[0].nodeValue + "<\/td>");
document.write("<td>" + x[i].getAttribute("T") +"°C"+"<\/td>"); //temp
document.write("<\/tr>");
} document.write("<\/table>");
</script>function defining <script type="text/javascript">
//<![CDATA[
function myFunction(a, b) {
return a * b;
};
//]]>
</script>
题外话:不要使用'document.write';请参阅[规格](http://www.w3.org/TR/html5/webappapis.html#document.write%28%29)中的警告。不要使用全局变量;改为将自己的代码放入自执行函数中。不要在循环的每个步骤修改DOM;更新一个字符串变量并在最后修改DOM。 – Oriol 2014-11-01 21:48:59
错误显示“输入类型不是xml”。我不清楚错误的含义。而且,为什么我不应该使用document.write?我试图在表格中显示'b'的变量值。如果不是document.write,我该用什么? – denise 2014-11-01 22:16:46
'document.write'是坏的,因为我链接的规范中有警告。您应该改用'innerHTML'或DOM方法。 – Oriol 2014-11-01 22:23:04