2012-05-16 22 views
0

我從教程中複製了以下代碼,但仍然無法弄清楚我是否在某個地方犯了錯誤,或者是否與瀏覽器支持有關。在此先感謝您向我指出發生的事情!我的代碼中是否有錯誤,或者它與我的Firefox 12瀏覽器有關嗎?

<html> 
<head> 
<script type="text/javascript"> 

function loadXMLDoc(dname) 
{ 
    if(window.XMLHttpRequest) 
    { 
     xhttp = new XMLHttpRequest(); 
    } 
    else 
    { 
     xttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xhttp.open("GET", dname, false); 
    xhttp.send(); 
    return xhttp.responseXML; 
} 

function change(text) 
{ 
    var xmlDoc = loadXMLDoc("dom.xml"); 
    var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0]; 

    x.nodeValue = text; 

    var y = xmlDoc.getElementsByTagName("title"); 
    for(i=0; i<y.length; i++) 
    { 
     document.write(y[i].childNodes[0].nodeValue+"<br />"); 
    } 
} 

function remove(node) 
{ 
    xmlDoc = loadXMLDoc("dom.xml"); 
    var y = xmlDoc.getElementsByTagName(node)[0]; 

    xmlDoc.documentElement.removeChild(y); 
    alert("The element "+node+" has been removed!"); 
} 

function prove(u) 
{ 
    var x = xmlDoc.getElementsByTagName(u); 
    for (i=0; i<x.length; i++) 
    { 
     document.write(x[i].childNodes[0].nodeValue); 
     document.write("<br />"); 
} 

</script> 
</head> 
<body> 
    <input type="button" value="remove" onclick="remove('book')" /> 
    <input type="button" value="prove it" onclick="prove('book')" /> 
</body> 

</html> 

------------更新-------------------------

這裏的一個XML文件,可以幫助:

<bookstore> 
    <book category="cooking"> 
     <title lang="en">Everyday Italian</title> 
     <author>Giada</author> 
     <year>2005</year> 
     <price>30.00</price> 
    </book> 
    <book category="cooking"> 
     <title lang="en">Book 2</title> 
     <author>Giada</author> 
     <year>2005</year> 
     <price>30.00</price> 
    </book> 
    <book category="cooking"> 
     <title lang="en">Book 3</title> 
     <author>Giada</author> 
     <year>2005</year> 
     <price>30.00</price> 
    </book> 
</bookstore> 
+0

你有錯誤控制檯任何錯誤?你的代碼是否確認清潔? – sarnold

+0

如何找到錯誤控制檯?你是這個意思? https://developer.mozilla.org/en/Error_Console – stanigator

+0

據我所見,我沒有看到任何錯誤。 – stanigator

回答

1

我認爲這個問題可能是因爲document.write

任何文件.write語句在頁面加載完成後運行 將創建一個新頁面並覆蓋當前頁面的所有內容。

也有一個}證明函數

嘗試使用innerHTML一個div或某些HTML元素來克服這個問題的for聲明後失蹤。

除此之外,我不覺得你的代碼的任何問題

+0

感謝您關注細節。 – stanigator

0

劇本是尋找一個如果你把這個文件在同一目錄上面的頁面名爲「dom.xml」

文件,你會得到不同的結果。

+0

他們在同一個目錄中。 – stanigator

+0

錯誤可能在該文件中,或者該代碼與該文件交互的方式可能導致錯誤。 (或者在這個頁面上可能會出現一個錯誤,如果沒有一些XML可以嘗試,我不會看到;我很想根據我嘗試使用的隨機XML來提供建議。) –

+0

如果我包含我的XML文件,可能會有所幫助。 – stanigator

0

它看起來像缺少了最後一個功能證明或for循環的括號。

你也可能要聲明

var xmlDoc = loadXMLDoc("dom.xml"); 

之外的每個功能,或者將其添加到證明()

+0

修復for循環。仍然有問題。我幾乎放棄了這個問題,並轉向其他主題。感謝您的建議。 – stanigator

相關問題