删除已解析的元素onclick

时间:2016-09-15 16:29:04

标签: javascript ajax

我有一个解析的xml文件,显示两次相同的元素。现在我想要一个用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>

1 个答案:

答案 0 :(得分: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设置的全局变量。