2016-09-15 70 views
0

我有一個解析的xml文件,顯示兩次相同的元素。現在我想要一個用onclick聲明隱藏其中一個按鈕的按鈕。有誰知道如何做到這一點?刪除已解析的元素onclick

<!DOCTYPE html> 
<html> 
    <body> 

    <p id="dasa"></p> 

    <script> 
     var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
     myFunction(this); 
     } 
     }; 
     xhttp.open("GET", "customers.xml", true); 
     xhttp.send(); 

     function myFunction(xml) { 
     var xmlDoc = xml.responseXML; 
     var x = xmlDoc.getElementsByTagName("syl"); 

     document.getElementById("dasa").innerHTML = 
     x[0].getAttribute('category') + "<br>"; 

     document.getElementById("dasa").innerHTML += 
     x[0].getAttribute('category'); 
     } 

     function remove() { 
     x[0].removeAttribute('category'); 
     } 
    </script> 

    <button onclick="remove()">remove</button> 

    </body> 
</html> 

回答

0

x在您的刪除功能中未定義。

function remove() { 
    x[0].removeAttribute('category'); 
} 

你想是這樣的:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) { 
    myFunction(this); 
} 
}; 
xhttp.open("GET", "customers.xml", true); 
xhttp.send(); 

var xmlDoc; 
var x; 
function myFunction(xml) { 
xmlDoc = xml.responseXML; 
x = xmlDoc.getElementsByTagName("syl"); 

document.getElementById("dasa").innerHTML = 
x[0].getAttribute('category') + "<br>"; 

document.getElementById("dasa").innerHTML += 
x[0].getAttribute('category'); 
} 

function remove() { 
x[0].removeAttribute('category'); 
} 

這將使x成全局變量集由myfunction

+0

不幸的是,它不起作用。 –

+0

@JandeVries我的代碼是你的工作版本。你可能正在操縱你的xml響應完全錯誤,我不知道,因爲你沒有包含它。 –

+0

它顯示屏幕上的2個值,所以解析是好的,但按鈕不起作用。 –