我定義了函數'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